2013-03-21 131 views
1

我想用javascript正則表達式驗證'int'字段。如何在數字正則表達式中允許空格?

我用這串RE

var numbers =/^[0-9]+$/; 

這expresion不允許在文本框中空間。

如何創建允許文本框中的空格的正則表達式?

+0

你是什麼意思「允許空格」?到目前爲止的答案表明,這可以用幾種(不兼容)的方式來解釋。 – 2013-03-21 05:22:41

回答

2

添加一個空格字符集:

/^[0-9 ]+$/ 

如果要保證至少一個數字存在,你可以使用一個前瞻:

/^(?=\s*\d)[\d\s]+$/ 
+0

這將允許只輸入空格。 – 2013-03-21 05:02:03

+0

或'/ s'。 – 2013-03-21 05:02:11

+0

@ blender:由此表達式字符串產生的代碼錯誤,它顯示無效的參數錯誤。 – user2110346 2013-03-21 05:06:39

4

添加可選的空間有:

var numbers =/^\s*[0-9]+\s*$/; 
+0

儘管其他答案'/^[0-9] + $ /'更直接地回答了這個問題,我覺得這是他們實際想要的。 – 2013-03-21 05:02:29

+0

@Rob:我試過這個,它不允許空間進入。 – user2110346 2013-03-21 05:03:59

+0

這允許任何一端的空格,但不能分散在數字內。 – 2013-03-21 05:05:37

0

它取決於您想要允許空格的位置以及是否只需輸入空格(無數字) 被允許。如果你想至少需要一個數字和空格的分佈,你可以這樣做:

/^(\s*\d+)+\s*$/ 

這將允許輸入如「202 555 1212」

+0

@特德霍普:不,我不想要這樣的輸出,我只想要數字,如果用戶不輸入任何內容,那麼它應該允許去 – user2110346 2013-03-21 05:11:40

+0

@ user2110346 - 也許你應該編輯你的問題,並解釋你到底想要完成什麼。一些例子也有幫助。迄今爲止的答案代表(至少)三種不同的解釋你的要求,你似乎都不喜歡它們。 – 2013-03-21 05:21:22

0

這將允許使用空格,製表符和數字,但需要使用至少一個數字:

^\s*\d[\d\s]*$ 

Online fiddle.re demo

+0

給出無效的表達式錯誤 – user2110346 2013-03-21 05:13:13

+0

您正在使用哪種瀏覽器?它適用於我嘗試的一切。 [fiddle.re演示](http://fiddle.re/3tme6)也驗證。 – mvp 2013-03-21 05:14:47

+0

我正在使用IE8,它仍然不工作 – user2110346 2013-03-21 05:19:36

1

這個正則表達式允許數字和空格。

/[^\d\s]/ 
+0

對不起esha,但它不工作..空間是不允許的。 – user2110346 2013-03-21 05:21:56

+0

/^ \ s * \ d [\ d \ s] * $ / – 2013-03-21 06:27:19

相關問題