我正在建立一个实时密码验证器。我需要检查一下这些特殊字符中是否至少有一个:!@#$%^& *()+
我还看到了其他涉及字母字符和数字的问题,但我需要检查仅针对特殊字符。这是我到目前为止所做的工作,但当我回去编辑文本中间的字符时停止工作。
缩短代码:
$('#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/
仅为特殊字符编写正则表达式的正确方法是什么?
答案 0 :(得分:1)
要检查这些特殊字符中的至少一个,这个正则表达式就足够了:
special = /[!@#$%^&*()+]/
您的正则表达式:/^[\!@\#\$\%\^&\*\(\)\+]+$/
仅在所有输入字符由这些特殊字符组成时匹配。
PS:在内部角色类中,您无需转义这些特殊字符。