代码之家  ›  专栏  ›  技术社区  ›  Mornor

忽略单词[重复]后的所有内容

  •  0
  • Mornor  · 技术社区  · 8 年前

    只有文本完全匹配时,正则表达式(在javascript中,如果重要)才匹配什么?也就是说,字符串的另一端不应该有额外的字符。

    例如,如果我想 abc 然后 1abc1 , 1abc abc1 不匹配。

    0 回复  |  直到 7 年前
        1
  •  253
  •   Howard    15 年前

    使用开始和结束分隔符: ^abc$

        2
  •  35
  •   Raghav Dinesh    8 年前

    这要看情况而定。你可以

    string.match(/^abc$/)
    

    但这与下面的字符串不匹配:“字母表的前3个字母是ABC。不是ABC123’

    我认为您要使用b(单词边界)

    var str = 'the first 3 letters of the alphabet are abc. not abc123';
    var pat = /\b(abc)\b/g;
    console.log(str.match(pat));
    

    实例: http://jsfiddle.net/uu5VJ/

    如果前一种方法对你有用,我建议你不要用它。

    这意味着你可能有如下情况:

    var strs = ['abc', 'abc1', 'abc2']
    for (var i = 0; i < strs.length; i++) {
        if (strs[i] == 'abc') {
            //do something 
        }
        else {
            //do something else
        }
    }
    

    你可以利用

    if (str[i].match(/^abc$/g)) {
        //do something 
    }
    

    这将大大增加资源密集度。对我来说,一般的经验法则是,对于简单的字符串比较,使用条件表达式;对于更动态的模式,使用正则表达式。

    有关javascript regex的更多信息: https://developer.mozilla.org/en/JavaScript/Guide/Regular_Expressions

        3
  •  13
  •   Prusse    11 年前

    “^”表示行首“$”表示行尾。如。:

    var re = /^abc$/;
    

    将匹配“abc”,而不是“1abc”或“abc1”。你可以在 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions

    推荐文章