регулярное выражение сравнить два числа - PullRequest
1 голос
/ 18 ноября 2008

Могу ли я как-то сравнить два числа в регулярном выражении? я хочу регулярное выражение, которое правильно для 10-12, но неверно для 12-10. Я имею в виду, что 10 должно быть меньше 12. Я хочу сделать это в Javascript.

Ответы [ 3 ]

14 голосов
/ 18 ноября 2008

Если вход всегда имеет форму X-Y, то почему бы не использовать функцию split () с '-' в качестве разделителя, а затем сравнить две части с>

Вы не можете сравнивать числовые значения, используя RegExps.

2 голосов
/ 18 ноября 2008

Проблема в том, что вы пытаетесь объединить две проблемы в одну.

Regex хорош в синтаксисе (то есть в распознавании чисел), но мусор в семантике (т.е. в распознавании смысла). Так что регулярное выражение определенно поможет вам распознать x-y, но вы слишком много просите, чтобы затем перейти к рассуждению о связи между x и y.

Как часто цитируется;

Некоторые люди, когда сталкиваются с проблема, подумай "Я знаю, я буду использовать регулярные выражения. "Теперь у них есть две проблемы. ( JWZ )

Вернее, теперь у вас три.

2 голосов
/ 18 ноября 2008

Я бы не использовал регулярные выражения для этого. Я разделил бы строку на операторе, затем сравнил бы два получающихся числа на основе того, какой оператор я нашел (я предполагаю, что 10+12 и 12+10 оба были бы допустимы).

...