匹配整个字符串

时间:2011-06-09 20:03:09

标签: javascript regex

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

例如,如果我尝试匹配abc,则1abc11abcabc1将不匹配。

3 个答案:

答案 0 :(得分:234)

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

答案 1 :(得分:33)

这取决于。你可以

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正则表达式的更多信息:https://developer.mozilla.org/en/JavaScript/Guide/Regular_Expressions

答案 2 :(得分:13)

“^”对于结尾的行“$”的开头。例如:

var re = /^abc$/;

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

了解详情