【问题标题】:Javascript RegExp for special characters ONLYJavascript RegExp 仅用于特殊字符
【发布时间】: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


【解决方案1】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-29
    • 2020-01-07
    • 2011-08-02
    • 2021-09-28
    • 2020-12-02
    相关资源
    最近更新 更多