我正在构建一个实时密码验证器。我需要检查是否至少存在以下特殊字符之一:!@#$%^&*()+
我见过其他也涉及字母字符和数字的问题,但我需要只检查特殊字符。这是我目前所拥有的,哪种有效,但当我返回并在文本中间编辑一个字符时停止工作。
缩短代码:
$('#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/
仅针对特殊字符编写正则表达式的正确方法是什么?
最佳答案
要检查这些特殊字符中的至少一个,这个正则表达式就足够了:
special = /[!@#$%^&*()+]/
您的正则表达式:/^[\!@\#\$\%\^&\*\(\)\+]+$/
仅在 所有输入字符由这些特殊字符组成。
PS:在字符类中你不需要转义这些特殊字符。
关于Javascript RegExp 仅用于特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25873481/