2012-08-10 213 views
2

我正在使用RegEx ^[0-9]+$"来仅允许数字。 我想允许连字符- &空格也。正则表达式允许只有数字和数字

任何人都可以帮助我将RegEx修改为适当的吗?

我正在使用下面的JS代码来实现相同,但这样如果用户复制粘贴文本&那么按键没有得到解决。

//Allowed characters are : 8 = Back space, 
//9 = Horizontal tab, 27 = esc, 127 = Delete, 
//13 = Enter digits = 48 to 57, 45 = hypen 

$('#PostalCode').keypress(function (e) { 
    var key = (e.keyCode ? e.keyCode : e.which); 
    return (key == 8 || key == 9 || key == 127 || key == 27 || key == 13 || key == 45 || (key >= 48 && key <= 57)); 
}); 

回答

6

您可以在字符类中添加一个-和空间,像这样:

^[0-9 -]+$ 

务必把-无论是在前面或后面(因为它不会被误认为是一个范围),或者逃脱它:

^[0-9 \-]+$ 

你也可以使用\d代替0-9,因为他们是相同的:

^[\d -]+$ 
+0

更新了问题,以允许空间。 – Biki 2012-08-10 10:42:52

+1

@Biki:我的正则表达式处理。 – 2012-08-10 10:43:05

+0

在'-'之前需要转义字符'\' – diEcho 2012-08-10 10:44:54

1

使用^[\d-\s]+$允许连字符也

+0

更新的问题,以使空间也。 – Biki 2012-08-10 10:41:18

+0

-1:您的正则表达式只匹配交替数字和连字符的字符串,并且要求字符串的长度为2的倍数。此外,不匹配空格。 – 2012-08-10 10:41:42

+0

我已添加'+' – diEcho 2012-08-10 10:44:03

相关问题