Javascript RegExp 仅用于特殊字符

标签 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/

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

最佳答案

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

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

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

PS:在字符类中你不需要转义这些特殊字符。

关于Javascript RegExp 仅用于特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25873481/

相关文章:

c# - 正则表达式以匹配电子邮件

javascript - 正则表达式负向预测不包括整个 block

unix - `rm` 一个名为 '--help' 的文件?

javascript - 如何在 ASP.NET 表单上使用 javascript 调用回发

javascript - 如何让页脚从 DOM 的第 3 页开始

javascript - 网站php链接末尾添加 "?"是什么意思?

javascript - 在 javascript 或 jquery 中拆分日期和时间

c++ - 在Lua中存储Lua脚本

mysql - (Windows批处理文件)此时SET意外出现

javascript - RequireJS - 将参数传递到模块进行初始化