Answers:
使用开始和结束定界符: ^abc$
^abc def ghi$
/^(?:abc|def)$/
或/^(abc|def)$/
。否则,如果未使用组,/^abc|def$/
则将abc
在字符串的开头或字符串def
的末尾进行匹配。
这取决于。你可以
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/zh-CN/docs/Web/JavaScript/Guide/Regular_Expressions中了解更多信息
\babc\b
,这将允许例如123 abc 123
匹配abc
(但不能像问题中那样否定例子);但是,请^abc$
确保a
该字符串位于字符串的开头和c
结尾-否则将不匹配。