我正在创建一个我想添加字段验证的网络表单。当前的方法涉及在输入标记中指定“pattern”属性,如下所示:
<input id="foo" class="span7" type="text" pattern="^[0-9]*\.?[0-9]*$">
但是,这种方法有意想不到的行为,正如我从MDN中读到的那样,并不是所有主流浏览器都支持。有没有这个功能的替代品?
要清楚,如果文本框的内容与指定的正则表达式不匹配,我想触发风格效果。我意识到这可以通过Jquery和add / remove类来实现,但这感觉效率很低。
答案 0 :(得分:1)
实际上没有高效的方式来做到这一点;你要么需要使用pattern
,要么做自己的事件监听器,它在关键事件上运行自己的正则表达式。
答案 1 :(得分:0)
试试这个:
HTML:
<input id="foo" class="span7" type="text" onblur="checkInput(this.value,'^[0-9]*\.?[0-9]*$');">
JavaScript的:
<script>
function checkInput(txt, pattern) {
var re = new RegExp(pattern);
var x = re.test( txt );
//--- if x != true then show error message
}
</script>