JS регулярное выражение для сопоставления двух возможных комбинаций - PullRequest
0 голосов
/ 17 декабря 2018

Мне нужно захватить определенную комбинацию букв, за которыми следует число (любая сумма), представленное в переменной с именем input.Буквы строгие, цифры нет.Буквы находятся либо в начале строки, либо сразу после обратной косой черты.

Так, например, мне нужно было бы захватывать без учета регистра:

  • ab12345678google
  • cd4321newyorkpost
  • что-нибудь \ здесь \ ab1357
  • что-то \ слишком \ cd2468

Для этого у меня есть простое правило, которое работает (ну, дваправила):

input.value.match(/^(ab|cd)[0-9]+/i) || input.value.match(/\\(ab|cd)[0-9]+/i)

Тем не менее, строка с именем test также может существовать непосредственно перед заданными буквами, которые мне также нужно будет захватить (либо с начала, либо после обратной косой черты),Таким образом, помимо захвата только данных двух букв, мне также нужно было бы зафиксировать эти случаи, когда test перед буквами является строгим фактором, например:

  • testcd4321newyorkpost
  • что-нибудь \ здесь \ testab1357

Я совершенно уверен, что в запрос на совпадение можно поместить какой-то "необязательный" поиск, не переписывая правила для test, но как новыйя с регулярным выражением Я не уверен, что я буду искать здесь?

Ответы [ 2 ]

0 голосов
/ 17 декабря 2018

Вы можете использовать это регулярное выражение:

(?:^|\\)(?:test)?(?:ab|cd)\d+

Что означает:

  • Начало матча или \
  • Соответствие необязательной строке test
  • Совпадение ab или cd
  • Совпадение 1+ цифр
0 голосов
/ 17 декабря 2018

Почему бы просто не сделать текст test необязательным?

(?:test)?(ab|cd)[0-9]+

должен работать в любой из ваших ситуаций.

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