【问题标题】:How to use a set of characters in the javascript match method如何在javascript匹配方法中使用一组字符
【发布时间】:2015-05-06 17:21:08
【问题描述】:

如何在javascript匹配方法中使用以下所有字符作为正则表达式,并转义需要转义的字符?

~!@#$%^&*()_-+={}[]|:;,./?和空间

只有当 mysstring 不包含上述任何字符集时,mysstring.match(REGEX) 才会返回 null

 "abc".match(REGEX) //should return null
 "abc@".match(REGEX) //should NOT return null (it has @)
 "ab c".match(REGEX) //should NOT return null (it has a space)
 "++abc".match(REGEX) //should NOT return null (it has +)

【问题讨论】:

  • 您真的应该阅读有关Regex.match() 方法的文档。

标签: javascript regex match


【解决方案1】:

将字符放在一个集合中,以便正则表达式匹配字符串中的一个字符,该字符是集合中的任何字符。

-] 字符在集合中使用时需要转义,如果使用正则表达式文字,/ 字符需要转义:

var REGEX = /[~!@#$%^&*()_\-+={}[\]|:;<>,.\/? ]/;

【讨论】:

    【解决方案2】:

    看起来你只是想在这里匹配一个非单词字符。只需使用\W 进行匹配:

    var re = /[\W_]/;
    "abc".match(re);
    null
    "abc@".match(re);
    ["@"]
    "ab c".match(re);
    [" "]
    "++abc".match(re);
    ["+"]
    

    【讨论】:

    • 使用var re = /[\W_]/; 很容易包含,请参阅更新。
    【解决方案3】:

    这有帮助吗?

    var REGEX = /[_\W0-9]/;
    

    此表达式检查任何特殊字符或空格。 ....并且也只为“abc”返回 null。match(REGEX)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-11-14
      • 1970-01-01
      • 2017-09-14
      • 2020-04-08
      • 1970-01-01
      • 2023-03-29
      • 1970-01-01
      • 2016-08-08
      相关资源
      最近更新 更多