PHP与JS实现密码正则匹配:仅限数字字母组合

作者:小满时间:2026-10-21 20:03:05浏览:285

本文详解如何使用正则表达式校验密码,要求仅包含数字和字母组合,长度6-30位,且不能全为数字或字母。提供PHP与JavaScript两种语言的具体实现代码,并附带正则测试工具链接,帮助开发者快速实现密码安全验证功能。

密码校验规则说明

本文通过具体实例,讲解如何利用正则表达式实现密码字符串的匹配功能,确保密码仅由数字和字母组成。内容包含PHP与JavaScript两种语言的实现方案,供读者参考借鉴。

密码需满足以下校验规则:

1. 不允许全部为数字 2. 不允许全部为字母 3. 必须同时包含数字和字母 4. 禁止包含特殊字符 5. 密码长度限制在6至30位之间

PHP实现代码


/**
 * @desc get_pwd_strength()im:根据密码字符串判断密码结构
 * @param (string)$mobile
 * return 返回:$msg
 */
function get_pwd_strength($pwd){
  if (strlen($pwd)>30 || strlen($pwd)<6)
  {
    return "密码必须为6-30位的字符串";
  }
  if(preg_match("/^\d*$/",$pwd))
  {
    return "密码必须包含字母,强度:弱";//全数字
  }
  if(preg_match("/^[a-z]*$/i",$pwd))
  {
    return "密码必须包含数字,强度:中";//全字母
  }
  if(!preg_match("/^[a-z\d]*$/i",$pwd))
  {
    return "密码只能包含数字和字母,强度:强";//有数字有字母 ";
  }
}

JavaScript正则匹配实现

JavaScript正则匹配实现

JS实现代码


/**
 * 检测密码强度,必须由数字与字母组合,至少6位的字符串。
 */
$.checkPwd = function(v){
 v=$.trim(v);
 if(v.length<6||v.length>30){
    return "密码长度为6-30位";
  }
  if(/^\d+$/.test(v))
  {
    return "全数字";
  }
  if(/^[a-z]+$/i.test(v))
  {
    return "全字母";
  }
  if(!/^[A-Za-z0-9]+$/.test(v))
  {
    return "只能含有数字有字母";
  }
  return "正确";
};

正则工具推荐

此外,推荐两款实用的正则表达式在线工具供测试使用:

JavaScript正则表达式在线测试工具: http://tools.jb51.net/regex/javascript

正则表达式在线生成工具: http://tools.jb51.net/regex/create_reg

希望上述内容能对正则表达式的学习与应用提供帮助。

作者最新文章