espressione regolare per trovare i numeri decimali / mobili?

Ho bisogno di un’espressione regolare per numeri decimali / mobili come 12 12.2 1236.32 123.333 e +12.00 o -12.00 o … 123.123 … per l’utilizzo in javascript e jQuery. Grazie.

Abbinare facoltativamente un segno + o – all’inizio, seguito da una o più cifre decimali, facoltativo seguito da un punto decimale e una o più cifre decimali utilizzano la fine della stringa:

/^[+-]?\d+(\.\d+)?$/ 

RegexPal

L’espressione corretta dovrebbe essere la seguente:

 [+-]?([0-9]*[.])?[0-9]+ 

questo vale per:

 +1 +1. +.1 +0.1 1 1. .1 0.1 

Ecco l’esempio di Python:

 import re #print if found print(bool(re.search(r'[+-]?([0-9]*[.])?[0-9]+', '1.0'))) #print result print(re.search(r'[+-]?([0-9]*[.])?[0-9]+', '1.0').group(0)) 

Produzione:

 True 1.0 

Se si utilizza mac, è ansible eseguire il test sulla riga di comando:

 python -c "import re; print(bool(re.search(r'[+-]?([0-9]*[.])?[0-9]+', '1.0')))" python -c "import re; print(re.search(r'[+-]?([0-9]*[.])?[0-9]+', '1.0').group(0))" 

È ansible verificare la convalida del testo e anche solo una convalida del punto decimale utilizzando isNaN

 var val = $('#textbox').val(); var floatValues = /[+-]?([0-9]*[.])?[0-9]+/; if (val.match(floatValues) && !isNaN(val)) { // your function } 

Le risposte di Paulpro e lbsweek mi hanno portato a questo:

 re=/^[+-]?(?:\d*\.)?\d+$/; >> /^[+-]?(?:\d*\.)?\d+$/ re.exec("1") >> Array [ "1" ] re.exec("1.5") >> Array [ "1.5" ] re.exec("-1") >> Array [ "-1" ] re.exec("-1.5") >> Array [ "-1.5" ] re.exec(".5") >> Array [ ".5" ] re.exec("") >> null re.exec("qsdq") >> null