正则表达式允许连字符和;仅限数字

时间:2012-08-10 10:36:51

标签: javascript jquery regex

我使用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));
});

2 个答案:

答案 0 :(得分:7)

您可以在字符类中添加-和空格,如下所示:

^[0-9 -]+$

请务必将-放在后面或前面(因为它不会被误认为是一个范围,然后),或者逃避它:

^[0-9 \-]+$

您也可以使用\d代替0-9,因为它们是等效的:

^[\d -]+$

答案 1 :(得分:1)

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