Соответствие регулярному выражению javscript для очень специфического поиска (Поиск начала строки) - PullRequest
0 голосов
/ 09 мая 2019

Учитывая следующее регулярное выражение

/144*/g

Я хочу, чтобы оно совпадало с 14450, 14445, НО НЕ 14.

То, что я хочу, это совпадение с первым3 символа - 144 и все что угодно после этого.

var zip = '14';//Don't want this to match
var search = new RegExp('144*', 'g');
if (zip.match(search)) //TRUE

Ответы [ 3 ]

2 голосов
/ 09 мая 2019

Я хочу, чтобы первые 3 символа соответствовали 144 и всем, что после этого.

Для этого вам не нужно регулярное выражение или манипуляции со строками. Вы можете просто использовать string.indexOf и проверить, находится ли 144 в начале (нулевой индекс) строки:

const isOneFourFour = zip.indexOf('144') === 0
2 голосов
/ 09 мая 2019

Вы можете использовать это регулярное выражение, которое будет соответствовать любому тексту, начинающемуся с 144, но не будет соответствовать 14

^(?!14$)144.*$

Этот негативный взгляд (?!14$) прекращает сопоставление 14 числа, и все остальное разрешено.

Regex Demo

Отрицательное предвидение действительно избыточно, и вы можете написать его как ^144.*$ или ^144\d*$

0 голосов
/ 09 мая 2019

Ваш шаблон 144* соответствует 14, а затем повторяется 0+ раз номер 4.

Это будет соответствовать, например, 14, 144 или 14444444

Если вы хотите, чтобы ваш матч начинался с 14, а в дальнейшем должно быть 1 или более цифр, которые вы можете использовать:

^144\d+

Regex demo

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...