【问题标题】:JavaScript Regex Special Cases [duplicate]JavaScript 正则表达式特殊情况 [重复]
【发布时间】:2021-02-09 13:35:51
【问题描述】:

寻求有关 JS 正则表达式的帮助并添加更多字符。这是它目前包括的(我认为):

  • 所有字母数字字符
  • 空间
  • 撇号
  • 句号(点)
  • 逗号
  • 下划线和连字符

我目前的正则表达式在这里:

/^[\w-\.-\,\s-']+$/

可以更好地格式化吗?这是针对网络表单上的 <input> 文本字段的,我愿意接受其他建议或对当前声明的潜在影响。

最后,我如何另外包含 $&% 字符?

检查我的正则表达式的 JS 是这样的:

function has_error(el, type) {

    var textReg = /^[\w-\.-\,\s-']+$/;

    if ( el.val() == '' || (type=='text' && !textReg.test(el.val())) ) {
        // apply error logic
        return true;
    } else {
        // clear error logic
        return false;
    }
}

【问题讨论】:

    标签: javascript regex


    【解决方案1】:

    小心,字符类中的破折号表示一个范围,你不希望在这里。将破折号放在开头或结尾以避免这种情况。此外,无需转义标点符号:

    /^[\w.,'\s-]+$/
    

    添加更多字符很容易:

    /^[\w.,'\s$%&-]+$/
    

    请注意,$ 表示字符类中的文字 $,而不是“字符串结尾锚”。

    【讨论】:

    • 实际上,' 不适用于 iOS。有什么想法可以更新 iOS Safari 的正则表达式吗?
    • “不工作”是什么意思?它与撇号不匹配吗?也许您的文本包含像‘’‛′ 这样的印刷撇号?尝试将它们复制并添加到您的正则表达式中。
    • 我的功能是阻止带有 iOS 撇号的表单提交。我会尝试添加它们。
    猜你喜欢
    • 2018-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-16
    • 2013-09-19
    • 1970-01-01
    • 1970-01-01
    • 2013-02-25
    相关资源
    最近更新 更多