HTML5input模式search报价

我需要testinginput字段( <input type="text" /> )对这个正则expression式:

 [^'"]+ 

这显然不是一件容易的事情,因为我不能使用"属性内部”。使用“引用”实体看起来并不像在正则expression式引擎中那样工作。

我怎样才能做到这一点?

HTML5 @pattern属性正则expression式基于JavaScript正则expression式,因此您可以像使用JavaScript一样对该字符使用hex表示法unicode表示法

 " = \x22 OR \u0022 ' = \x27 OR \u0027 

这样你就可以轻松使用

 pattern="[^'\x22]+" 

TADA! 没有JavaScript库参与! ;)

尝试使用js框架,如JQuery或PrototypeJS

那么你可以说

 onchange=(function() {...}); 

你可以通过这个线程来了解如何在jQuery上使用正则expression式:jQuery中的正则expression式字段validation

如果你有一个HTML5浏览器,你可以写

 <input id="ipt_my_field" type="text" name="my_field_name" pattern="[^'"]+" 

而且你需要用Modernizer来准备一些function不佳的浏览器

 if(!Modernizr.input.pattern) { var input = document.getElementById("ipt_my_field"); input.addEvent('onblur', function(ip){ if(ip.value.match(/[^'"]+/)) { // is a good } else { // is a bad } }); }