Регулярное выражение для проверки формата строки <целое число> @ <целое число> - PullRequest
0 голосов
/ 01 мая 2018

Мне нужно создать регулярное выражение для строки в формате

<whole-number>@<whole-numbers>%
for example:
1@100%,
9@50%,
5@10%,
  • до @
  • только @ специальный символ после цифры
  • после @
  • в конце строки должен быть разрешен только% спецсимвол.

следующие примеры недопустимы.

0@100%,
a@50%,
1@abc%,

Я создал регулярное выражение, но оно не работает должным образом

([0-9]{1}[@]{1}[0-9]{0,3})

Ответы [ 2 ]

0 голосов
/ 01 мая 2018

Вы хотите, чтобы строка начиналась с однозначного числа от 1 до 9 (не 0), затем следует @, затем число, состоящее не более чем из 3 цифр и заканчивающееся %.

Тогда используйте:

/^[1-9]@\d{1,3}%$/

console.log('4@55%',/^[1-9]@\d{1,3}%$/.test('4@55%'))
console.log('2@678%',/^[1-9]@\d{1,3}%$/.test('2@678%'))
console.log('22@22%',/^[1-9]@\d{1,3}%$/.test('22@22%'))
console.log('a@11%',/^[1-9]@\d{1,3}%$/.test('a@11%'))
console.log('0@99%',/^[1-9]@\d{1,3}%$/.test('0@99%'))
console.log('3@%',/^[1-9]@\d{1,3}%$/.test('3@%'))
console.log('1@abc%',/^[1-9]@\d{1,3}%$/.test('1@abc%'))
0 голосов
/ 01 мая 2018

Это должно сделать это:

/^\d@\d+%$/

\d для цифр. + говорит один или несколько символов

То, как вы написали свое регулярное выражение, кажется, вам нужно только 3 числа после @, если вы хотите это, то как вы написали это, это должно быть что-то вроде:

/^[0-9]{1}@[0-9]{0,3}%$/

Вам не хватает совпадения символов % и тегов привязки.

Или вы можете просто использовать:

/^\d@\d{0,3}%$/
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...