Regex принимает пробелы до и после строки - PullRequest
0 голосов
/ 27 апреля 2018

Я пытаюсь сделать регулярное выражение, которое принимает строку, содержащую 3-10 символов (пробелы до и после строки разрешены).

Почему это:

return (this.state.user.name.match(`^\s*([a-zA-Z0-9.\-_]{3,10})\s*$`));

возвращает false, когда я пытаюсь поставить пробел (ы) до и / или после строки? (это работает правильно, если я не ставлю пробелы.)

Я, вероятно, что-то упускаю, потому что это работает с помощью тестера регулярных выражений: https://regex101.com/r/2371SM/1

Спасибо за вашу помощь.

1 Ответ

0 голосов
/ 27 апреля 2018

Когда вы передаете регулярное выражение в виде строки, вы должны сделать двойное \\, чтобы вы избежали \, а не буквы, следующей за ним:

console.log(((" abcd").match(`^\\s*([a-zA-Z0-9.\-_]{3,10})\\s*$`)));

console.log(((" abcd").match(/^\s*([a-zA-Z0-9.\-_]{3,10})\s*$/)));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...