[英]regular expression for Alpha numeric,no spaces and 9 character input?
[英]Testing for numeric input with regular expression
我有以下正則表達式:
^[-+]?[\\d{0,3},?\\d{3}]*\\.?\\d+$
我正在嘗試支持以下格式的數量:
我不關心科學記譜法,但我的用戶可能會或可能不會用逗號輸入。 我遇到的問題是表達式匹配:
我怎么能讓表達式表明如果有一個逗號,那么后面必須有三個字符。
試試這個正則表達式:
/^[-+]?(?:\d*|\d{1,3}(?:,\d{3})*)(?:\.\d+)?$/
試試這個
^([-+]?\d(?:(,\d{3})|(\d*))+\d*)?\.?\d*$
SUCCESSES
0
1
-1
-1.00
100,000
100.0
1,111,111
.25
FAILURES
100.0.
100.0,
asdf100.0
100,
1,11,111
,111,111
正如Robert Harvey指出的那樣,如果您所關心的只是捕獲要在程序中使用的數值,那么您可以刪除逗號,一切都會很好。
但是,假設這是一個格式化問題(也就是說,您正在檢查擊鍵並且只允許有效輸入,或者將輸入重新格式化為有效的數值),那么您可以嘗試這樣的事情:
編輯 : ^[+-]?\\d{1,3}(,\\d{3})*(\\.\\d+)?$
這樣做是允許任意數量的逗號和3位數集,后跟零或一組點后跟一個或多個數字。
你把你的“計數”限定符放在方括號內,這沒有意義(從語法上來說,這是有道理的,但它沒有做你認為它正在做的事情)。
為什么不只是敲擊所有逗號然后測試?
g=oldstring.replace(',','');
g=g.replace('.','');//may as well do dots too
if (! g.match('/^[0-9]*[0-9]$/'))
alert("Bummerific");
此外,如果你要允許使用逗號,那么你不應該讓它們每隔3位數使用逗號。 國際用戶使用逗號分隔小數位。 在這種情況下,如果你想要迂腐,那么這個正則表達式可能會起作用
/^[0-9][0-9,.]*[0-9]$/
祝好運!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.