Pesquisa de padrão de input HTML5 para cotação

Eu preciso testar um campo de input ( ) contra este regex:

 [^'"]+ 

Obviamente, essa não é uma tarefa fácil, pois não posso usar " dentro do atributo. O uso da entidade” não parece funcionar, pois é interpretado literalmente pelo mecanismo regex.

Como posso fazer isso?

O regex do atributo HTML5 @pattern é baseado em JavaScript regex, portanto, você pode usar notação hexadecimal ou notação unicode para esse caractere como faria em JavaScript:

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

Para que você possa usar facilmente

 pattern="[^'\x22]+" 

TADA! Nenhuma biblioteca de JavaScript envolvida! 😉

Tente usar uma estrutura js como JQuery ou PrototypeJS

então você pode dizer

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

você pode seguir como usar o regex no jQuery através deste thread: Validação do campo de expressão regular em jQuery

se você tem um navegador HTML5, você pode escrever

  

e você precisa se preparar para não conseguir navegadores com Modernizer com alguns como este

 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 } }); }