Какое регулярное выражение (в JavaScript, если оно имеет значение) должно совпадать, только если текст является точным совпадением? То есть на другом конце строки не должно быть лишних символов.
Например, если я пытаюсь подстать abc
, а затем 1abc1
, 1abc
и abc1
будет не совпадать.
\babc\b
, что позволило бы, например,123 abc 123
соответствоватьabc
(но не отрицательные примеры, как в вопросе); однако,^abc$
убедитесь, что онa
находится в начале строки иc
в конце, иначе он не будет совпадать.Ответы:
Используйте начальный и конечный разделители:
^abc$
источник
^abc def ghi$
/^(?:abc|def)$/
или/^(abc|def)$/
. В противном случае, если группа не используется,/^abc|def$/
будет совпадатьabc
в начале строки ИЛИdef
в конце строки.Это зависит. Ты мог
Но это не соответствует следующей строке: «первые 3 буквы алфавита abc. не abc123 '
Я думаю, что вы хотели бы использовать
\b
(границы слов):Живой пример: http://jsfiddle.net/uu5VJ/
Если первое решение работает для вас, я бы посоветовал не использовать его.
Это означает, что у вас может быть что-то вроде следующего:
Хотя вы могли бы использовать
Это было бы значительно более ресурсоемким. Для меня общее правило: для простого сравнения строк используйте условное выражение, для более динамического шаблона - регулярное выражение.
Подробнее о регулярных выражениях JavaScript: https://developer.mozilla.org/en/JavaScript/Guide/Regular_Expressions
источник
«^» Для начала строки «$» для конца. Например.:
Будет соответствовать "abc", но не "1abc" или "abc1". Вы можете узнать больше на https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions
источник