HTML5 шаблон ввода для поиска цитаты - PullRequest
8 голосов
/ 18 февраля 2012

Мне нужно проверить поле ввода (<input type="text" />) с этим регулярным выражением:

[^'"]+

Это, очевидно, непростая задача, поскольку я не могу использовать " внутри атрибута.Использование сущности quot, похоже, не работает, так как оно интерпретируется буквально механизмом регулярных выражений.

Как мне это сделать?

Ответы [ 3 ]

30 голосов
/ 27 сентября 2012

Регулярное выражение атрибута HTML5 @pattern основано на регулярном выражении JavaScript, поэтому для этого символа можно использовать шестнадцатеричное представление или Unicode , как в JavaScript:

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

Так что вы можете легко использовать

pattern="[^'\x22]+"

TADA!Библиотеки JavaScript не задействованы!;)

0 голосов
/ 18 февраля 2012

если у вас есть браузер HTML5, вы можете написать

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

и вам нужно подготовиться к работе с браузерами, не поддерживающими Modernizer с некоторыми подобными

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
        }
    });
}
0 голосов
/ 18 февраля 2012

Попробуйте использовать js-фреймворк, такой как JQuery или PrototypeJS

, тогда вы можете сказать

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

, вы можете узнать, как использовать регулярные выражения в jQuery через этот поток: Регулярное выражениепроверка поля в jQuery

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...