【发布时间】:2014-11-10 11:32:41
【问题描述】:
我正在构建一个实时密码验证器。我需要检查是否至少存在以下特殊字符之一:!@#$%^&*()+
我还看到了其他涉及字母字符和数字的问题,但我需要检查仅针对特殊字符。这是我目前所拥有的,哪种有效,但是当我返回并在文本中间编辑一个字符时停止工作。
短代码:
$('#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/
只为特殊字符编写正则表达式的正确方法是什么?
【问题讨论】:
-
^[\!@\#\$\%\^&\*\(\)\+]+$仅当输入的 每个 字符都是这些字符之一时才匹配。不要锚定表达式并且不需要重复。 (我希望您不要将密码长度限制为 9 个字符:-/)
标签: javascript regex escaping