2008-11-18 3 views
1

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

+0

Я думаю, вы захотите дать более подробное описание или примеры того, что вам нужно. – 2008-11-18 13:47:10

+0

[Jeff's] (http://www.codinghorror.com/blog/archives/001016.html) ответьте на это !! – 2008-11-18 14:13:26

+0

Регулярные выражения предназначены для сопоставления шаблонов, а не для проверки числовых значений. Найдите вероятную строку с регулярным выражением, затем проверьте ее числовое значение на любом языке хоста (Javascript, что угодно). – 2013-06-02 05:29:12

ответ

14

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

нельзя сравнивать числовые значения с помощью Regexps.

2

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

2

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

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

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

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

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