替代输入的“模式”属性

时间:2013-08-28 00:02:27

标签: javascript regex

我正在创建一个我想添加字段验证的网络表单。当前的方法涉及在输入标记中指定“pattern”属性,如下所示:

 <input id="foo" class="span7" type="text" pattern="^[0-9]*\.?[0-9]*$">

但是,这种方法有意想不到的行为,正如我从MDN中读到的那样,并不是所有主流浏览器都支持。有没有这个功能的替代品?

要清楚,如果文本框的内容与指定的正则表达式不匹配,我想触发风格效果。我意识到这可以通过Jquery和add / remove类来实现,但这感觉效率很低。

2 个答案:

答案 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>