Это зависит. Ты мог
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
\babc\b
, что позволило бы, например,123 abc 123
соответствоватьabc
(но не отрицательные примеры, как в вопросе); однако,^abc$
убедитесь, что онa
находится в начале строки иc
в конце, иначе он не будет совпадать.