Регулярное выражение для шестнадцатеричной строки - PullRequest
0 голосов
/ 25 января 2019

Я пытаюсь создать регулярное выражение, которое определяет, является ли шестнадцатеричная строка только комбинацией 00, 06, 03 и пробела.

Ближайшее, что я нашел на данный момент, это ^ (00 | 06| 03) $, но он все еще дает мне ложь за 0300

0300 will match
0600 0300 match
0612 0300 no match
3030 no match

Ответы [ 2 ]

0 голосов
/ 25 января 2019

^(00|06|03)$ будет соответствовать только «00» или «06» или «03». Если вы ожидаете, что эта комбинация повторится, вам нужно добавить +.

Попробуйте ^(00|06|03| )+$

Я тоже включил туда пространство. Это будет соответствовать вашим сценариям.

0 голосов
/ 25 января 2019

Закрыть, но вам нужно закрытие и некоторая охрана:

let v = /^((00|06|03){2}\s)*(00|06|03){2}$/;

[
  '0300',
  '0600 0300',
  '0612 0300',
  '3030',
  '0303 0000',
  '0630 0300',
  '8790 0060',
  '03 0000',
  '0003 0006 0000 0000 0303 0606 0600 0306 0000',
  '0606 0603 0303'
].map(s => console.log("%s : %s", s, v.test(s)));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...