2010-07-22 5 views

ответ

6

Возможно, вам не следует использовать JQuery; вы должны использовать встроенную поддержку регулярных выражений Javascript. В этом случае регулярное выражение может выглядеть следующим образом:

var result = /\d+(?:\.\d+)?/.exec(mystring); 

Официальная ссылка на это на https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/RegExp.

+1

, вы можете захотеть следовать этому, чтобы parseFloat() превратился в число – second

+0

. Ваше решение не работает: http://jsfiddle.net/3LmHH/ – user113716

+0

Изменить« \\ "to" \ ". Но он возвращает любое число, а не целое число. Это действительно то, чего хочет OP? – BrunoLM

-1

Просто найдите номер, используя обычный объект RegEx в javascript. Здесь нет необходимости в jquery.

например:

var str = new RegExp("\\d+(?:\\.\\d+)"); 
var num = str.exec("Cost USD 400.00"); 
+0

Метод «test» вернет true, если есть число, но на самом деле не даст вам номер обратно. Кроме того, вы не получите «.00» из этого регулярного выражения. – Reinderien

+0

Я небрежно понял, что я отправил метод start вместо .exec, поэтому я изменил его. Что касается регулярного выражения, я хотел бы добавить к вашему ответу (@Reinderien) и просто хотел дать damien код, который он мог бы использовать, потому что кажется, что он не знает, как это сделать, и это было до того, как вы отредактировали свой ответ. – gillyb

0

Что gillyb сказал, но я бы просто добавить:

var str=new RegExp("\\d+\.?\d+?"); 

Чтобы подобрать что-нибудь после десятичной точки.

выше RegEx должен соответствовать

400,01

400,0

400,001

Я часто использую http://xenon.stanford.edu/~xusch/regexp/analyzer.html при построении регулярных выражений ... но вы также можете найти эту один очень полезный http://www.regular-expressions.info/javascriptexample.html

, если вы поместите регулярное выражение в строку 1, строку, в которой выполняется тестирование по строке 2, затем вы можете увидеть, что попадает в переменную с помощью кнопки SHOW MATCH.

Попробуйте с вариантами вышеуказанных номеров и посмотрите, что вернется.