正则expression式 – 匹配整个string
什么是正则expression式(在JavaScript中是否重要)只在文本完全匹配时匹配? 也就是说,在string的另一端不应该有多余的字符。
例如,如果我试图匹配abc
,那么1abc1
和abc1
将不匹配。
使用开始和结束分隔符: ^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