将HTML5正则表达式转换为javascript正则表达式

时间:2013-10-18 11:10:18

标签: javascript regex html5 validation

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

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

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

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

    if( !valid )
        return false;
});

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

3 个答案:

答案 0 :(得分:4)

使用RegExp构造函数:

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

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

答案 1 :(得分:0)

只需添加字符串"^"+your reg ex here+"$"

的开头和结尾即可

答案 2 :(得分:0)

也许您可以使用this插件。 它模拟了html5功能,当它们不可用时(较旧的浏览器)。