【发布时间】:2013-10-18 11:10:18
【问题描述】:
对于带有正则表达式模式的输入字段:
<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 使用的不同,但我需要某种方法来转换任何正则表达式,使这种方法可以工作,只允许输入模式允许的字符。
【问题讨论】:
-
根据经验:如果您的解决方案使用
eval,它可能很糟糕。 -
如果它是我在内部为自己使用的东西并且不会发生注射,我不会说不好。
-
不像“容易注入”那样“坏”,而是像“低效、不优雅和容易出现错误”那样“坏”。
标签: javascript regex html validation