Javascript - регулярное выражение для проверки персонажа в определенных позициях - PullRequest
1 голос
/ 29 сентября 2019

Я хочу проверить символы в нескольких позициях, используя регулярное выражение

Исходная строка может быть 6-4,4-6,6-4

Хотите проверить ниже

  1. the char at position 0 should be [1-7]

  2. the char at position 1 should be [-]

  3. the char at position 2 should be [1-7]

  4. the char at position 3 should be [,]

  5. the char at position 4 should be [1-7]

  6. the char at position 5 should be [-]

  7. the char at position 6 should be [1-7]

  8. the char at position 7 should be [,]

  9. the char at position 8 should be [1-7]

  10. the char at position 9 should be [-]

  11. the char at position 10 should be [1-7]

Должен возвращать true, если выше совпадает, иначе false

Дайте мне знать, как я могу улучшить ниже, чтобы проверить несколько позиций и хороший справочник по регулярному выражению JavaScript

new RegExp("^.{0}[1-7]").test("6-4,4-4,6-4")

Ответы [ 2 ]

2 голосов
/ 29 сентября 2019

Предположим, вы не хотите пропускать 1-1, или ,1-1 Я бы попробовал что-то вроде

^(?:[1-7]-[1-7],?\b)+$

См. Эту демонстрацию на Regex101

Соответствует одному или нескольким 1-1. Если вы хотите сопоставить 2 до 3, используйте {2,3} вместо + в конце .

1 голос
/ 29 сентября 2019

источник может содержать 7 или 11 символов, и в конце его не будет. specified by op

Вы можете использовать

^(?:[1-7]-[1-7],){1,2}(?:[1-7]-[1-7])$

enter image description here

Regex demo

const regex = /^(?:[1-7]-[1-7],){1,2}(?:[1-7]-[1-7])$/;
const strs = ['6-4,4-6,6-4', '6-4,6-4', '9-2', '123-1231', '1232', '123#1221', '1-2', '1-2,1-2,1-2,']

strs.forEach(str => {
  console.log(str, ' | ', regex.test(str))
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...