Javascript RegEx仅限特殊字符

时间:2014-09-16 16:03:26

标签: javascript regex escaping

我正在建立一个实时密码验证器。我需要检查一下这些特殊字符中是否至少有一个:!@#$%^& *()+

我还看到了其他涉及字母字符和数字的问题,但我需要检查仅针对特殊字符。这是我到目前为止所做的工作,但当我回去编辑文本中间的字符时停止工作。

缩短代码:

$('#account-password').on('input', function () {
    var pass = $(this).val(),
    special = /^[\!@\#\$\%\^&\*\(\)\+]+$/

   // Special Character Check
    if ($(this).val().match(special)) {
        // OK
    } else {
        //Not OK
    }

});

完整代码: http://jsfiddle.net/kthornbloom/jodbu3ta/

仅为特殊字符编写正则表达式的正确方法是什么?

1 个答案:

答案 0 :(得分:1)

要检查这些特殊字符中的至少一个,这个正则表达式就足够了:

special = /[!@#$%^&*()+]/

您的正则表达式:/^[\!@\#\$\%\^&\*\(\)\+]+$/仅在所有输入字符由这些特殊字符组成时匹配。

PS:在内部角色类中,您无需转义这些特殊字符。