Проверка JQuery для проверки текста не содержит HTML - PullRequest
6 голосов
/ 24 марта 2011

Как я могу выполнить проверку jquery, чтобы проверить, не содержит ли текстовая область теги html?(ошибка, если это произойдет)

(Кстати, я все равно предотвращаю проникновение html на сервер)

Ответы [ 2 ]

11 голосов
/ 24 марта 2011

Вы можете использовать HTML-анализатор Джона Резига (http://bit.ly/hsMq4x), или, возможно, более наивное решение, которое просто ищет открывающие теги.

$('textarea').each(function() {
   if ($(this).val().match(/<(\w+)((?:\s+\w+(?:\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|[^>\s]+))?)*)\s*(\/?)>/)) {
      alert('html found');
   }
});

Решение Нила страдает от ложных срабатываний в текстовых областях, которые содержат действительныеСелекторы jquery, такие как текстовое поле, содержащее только «a».

10 голосов
/ 24 марта 2011

примерьте размер:

$('textarea').each(function(){
    var text = $(this).text();
    if($(text).length > 0){
        console.log('contains html elements')
    }
    else {
        console.log('no html elements')
    }
});

Скрипка здесь

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