正则expression式 – 匹配整个string

什么是正则expression式(在JavaScript中是否重要)只在文本完全匹配时匹配? 也就是说,在string的另一端不应该有多余的字符。

例如,如果我试图匹配abc ,那么1abc1abc1将不匹配。

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

这取决于。 你可以

 string.match(/^abc$/) 

但不符合以下string:“字母的前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/

如果以前的解决scheme适合你,我会build议不要使用它。

这意味着你可能有如下的东西:

 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 } 

这将是相当多的资源密集型。 对我而言,一般的经验法则是使用条件expression式进行简单的string比较,而对于更dynamic的模式则使用正则expression式。

更多关于JavaScript正则expression式的: https : //developer.mozilla.org/en/JavaScript/Guide/Regular_Expressions

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

 var re = /^abc$/; 

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