仅当文本完全匹配时才匹配的正则表达式(在 JavaScript 中,如果重要的话)是什么?也就是说,字符串的另一端不应该有多余的字符。
例如,如果我想匹配abc
,然后1abc1
,1abc
和abc1
将不匹配。
仅当文本完全匹配时才匹配的正则表达式(在 JavaScript 中,如果重要的话)是什么?也就是说,字符串的另一端不应该有多余的字符。
例如,如果我想匹配abc
,然后1abc1
,1abc
和abc1
将不匹配。
使用开始和结束分隔符: ^abc$
这取决于。你可以
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
“^”为行首,“$”为行尾。例如。:
var re = /^abc$/;
将匹配“abc”但不匹配“1abc”或“abc1”。您可以在https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions了解更多信息