Как создать регулярное выражение с максимумом из 3 числовых символов до и после "/", где числа перед "/" должны быть больше, чем числа после "/" - PullRequest
0 голосов
/ 17 июня 2019

Я должен сгенерировать регулярное выражение со следующими условиями

  • Макс. 3 цифровых знака до и после "/" Макс. 7 символов
  • включая «/» и другие специальные символы и десятичные числа не допускаются
  • Числа перед "/" должны быть больше, чем числа после "/"

Я пробовал это до сих пор

^\d{3}(\/\d{3})?$

Как я могу исправить эту проверку в регулярном выражении "Числа до" / "должны быть больше, чем числа после" / ""?

Может кто-нибудь, пожалуйста, помогите мне?

Ответы [ 2 ]

0 голосов
/ 17 июня 2019

Вы можете назначить две переменные - одну для цифр перед '/' и одну для после. как A / B, затем используйте функцию split () с '-' в качестве разделителя, а затем сравните две части с>.

Насколько я знаю, числовые значения нельзя сравнивать в регулярных выражениях.

0 голосов
/ 17 июня 2019

Вы не сможете достичь этого с помощью одного только регулярного выражения (по крайней мере, не так просто или легко) - вместо этого соберите обе части цифры и убедитесь, что первые цифры больше второй:

const check = str => {
  const match = str.match(/^(\d{1,3})\/(\d{1,3})$/);
  if (!match) {
    return false;
  }
  const [, d1, d2] = match;
  return Number(d1) > Number(d2);
};

console.log(
  check('123/456'),
  check('456/123'),
  check('45/123'),
  check('12/45')
);
...