#javascript #regex #newline #whitespace
#javascript #регулярное выражение #перевод строки #пробелы
Вопрос:
Мне было интересно, почему следующее регулярное выражение приводит к TRUE:
var users = "TESTnTEST2";
var user = "TEST5"
var position = users.search( user "n|$"); // result: 10
Я хочу выполнить поиск user
в users
.
Может кто-нибудь, пожалуйста, объяснить мне результат?
Ответ №1:
Ваше регулярное выражение заканчивается на TEST5n|$
, что означает «либо TEST5n
или конец строки»:
TEST5n
не найдено, но конец строки находится с индексом 10 (ваша строка содержит 10 символов).
Я думаю, вы ищете user "(\n|$)"
:
Обратите внимание, что я избежал обратной косой черты, поскольку в строковом литерале. Это не изменит результат, но это способ регулярного выражения для записи новой строки.
Ответ №2:
Вы могли бы использовать позитивный прогноз
user "(?=\n|$)"
Это означает user
, что за которым следует либо n
или $