jQuery Regex Code with if 语句获取密码



我正在尝试创建一个if语句,该语句将在jQuery(或Javascript)中测试字符串。 以下是条件:

  1. 必须介于 6-8 个字符之间。
  2. 第一个字符不能是数字。
  3. 必须包含 1 个数字、1 个小写字母和 1 个大写字母。

这是我的正则表达式代码:

((?=^[^0-9])(?=.*d)(?=.*[a-z])(?=.*[A-Z]).{6,8})

我在一个测试正则表达式代码的网站上对其进行了测试,它工作正常。

这是我目前的if语句:

if(((?=^[^0-9])(?=.*d)(?=.*[a-z])(?=.*[A-Z]).{6,8}).test(strOldPassword))
{
    alert("Something");
}

但是,当我的网页加载时,我收到语法错误,说正则表达式有问题。

有人可以帮助我找到我做错了什么吗? 谢谢。

有两种

方法可以在 JavaScript 中定义正则表达式。

  1. 使用 /.../ 语法。

    /((?=^[^0-9])(?=.*d)(?=.*[a-z])(?=.*[A-Z]).{6,8})/
    
  2. 通过创建 RegExp 对象的实例,该实例在构造函数中接受正则表达式作为字符串。

    new RegExp("((?=^[^0-9])(?=.*d)(?=.*[a-z])(?=.*[A-Z]).{6,8})")
    

那是

if(/((?=^[^0-9])(?=.*d)(?=.*[a-z])(?=.*[A-Z]).{6,8})/.test(strOldPassword)){
  alert("Something");
}

尝试以下操作:

if(/^(?=^[^0-9])(?=.*d)(?=.*[a-z])(?=.*[A-Z]).{6,8})$/.test(strOldPassword))
// --                                                --

/.../分隔正则表达式文字,以便解析器知道要解析的内容为正则表达式,而不是JavaScript(很像单引号分隔字符串)。

^...$ 表示应匹配整个字符串(否则您将测试至少 6-8 个字符)。

// -- ... --只是一个评论,表明我追逐了什么。

知道了!

if (!(/((?=^[^0-9])(?=.*d)(?=.*[a-z])(?=.*[A-Z]).{6,8})$/.test(strOldPassword)))
{
    jQuery('#txtOldPassword').addClass('error');
}

谢谢你的提示伙计们。

相关内容

  • 没有找到相关文章

最新更新