【问题标题】:Regular Expression to check Special characters except hypen and forwardslash [duplicate]正则表达式检查除连字符和正斜杠以外的特殊字符[重复]
【发布时间】:2020-03-25 17:11:13
【问题描述】:

我想知道正则表达式代码以检查它是否包含javascript中的连字符和正斜杠以外的特殊字符

function containsSpecialCharacters(str){
    var regex = /[~`!#$%\^&*+=\-\[\]\';,/{}|\\":<>\?]/g;
        return regex.test(str);
  }


var result = containsSpecialCharacters("sample"); // false
var result = containsSpecialCharacters("sample-test"); // false
var result = containsSpecialCharacters("sample++"); // true
var result = containsSpecialCharacters("/sample/test"); // false

【问题讨论】:

  • 标签jqueryhtmlcss有什么关系?
  • 反斜杠还是正斜杠?
  • 根据你的介绍,最后的例子应该解析为真,而不是假。
  • 只需将它们从字符类中删除即可。

标签: javascript regex


【解决方案1】:

您可以使用普通的正则表达式搜索所有 ASCII 特殊字符 like this one,然后只需删除连字符和反斜杠:

/[!$%^&*()_+|~=`{}\[\]:";'<>?,.]/

如果您想避免任何其他特殊字符,只需将其从正则表达式中删除即可。

你可以在这里测试这个正则表达式:https://regex101.com/r/gxYiGp/2

【讨论】:

    【解决方案2】:

    如果您只需要支持英文字符,列出例外比您希望匹配的要容易得多:

    /[^\w\s\\\-]/.test(myString);
    

    不过,如前所述,如果您需要支持国际字符,这将失败。

    【讨论】:

      【解决方案3】:

      你可以否定它让它看起来更短,像这样:

      [^\s\w-]
      

      【讨论】:

      • 这将产生“无效范围”。 _ 已包含在 \w
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-03-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-26
      相关资源
      最近更新 更多