3

对于具有正则表达式模式的输入字段:

<input type="text" maxlength="4" inputmode='numeric' pattern="\d*">

我想使用javascriptpattern来验证输入,通过以某种方式解析属性(这不起作用):

$('input').on('keypress', function(e){
    var regex = this.pattern,
        valid = eval(regex).test( e.charCode );

    if( !valid )
        return false;
});

我知道模式中的正则表达式与 JS 使用的不同,但我需要某种方法以这种方法可以工作的方式转换任何正则表达式,以允许仅输入模式允许的字符。

4

3 回答 3

5

使用RegExp构造函数:

var regex = this.pattern,
    valid = new RegExp("^"+regex+"$").test( e.charCode );

但你的模式应该是\d+,不是\d*

于 2013-10-18T11:11:04.847 回答
1

只需添加字符串的开头和结尾"^"+your reg ex here+"$"

于 2013-10-18T11:12:38.123 回答
0

也许你可以使用这个插件。它在不可用时模拟 html5 功能(旧版浏览器)。

于 2013-10-18T11:17:48.163 回答