2013-03-21 133 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

相关问题