RegExp字面值未被识别

时间:2015-03-11 20:57:33

标签: javascript jquery regex

我试图创建一个正则表达式,确保用户输入8个字符,包括一个大写字母和一个数字。

HTML

<input type="password">

到目前为止,我有这个

JS

var validator = '^(?=.*[A-Z])(?=.*[0-9]).{8,}$'

我想做的是:

   $('input').on('blur', function() {
       if ($(this).val().match(validator)) {
           alert('Correct!')
       }
    });

但由于某种原因,它不会通过。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

你拥有的是一个字符串。你需要声明一个正则表达式文字:

var validator = /^(?=.*?[A-Z])(?=.*?[0-9]).{8,}$/;

表现更好的正则表达式将是:

var validator = /^(?=[^A-Z]*[A-Z])(?=\D*\d).{8,}$/;