2014-02-04 5 views
0

У меня есть текстовая область на простом веб-сайте, который я бы хотел проверить на конкретный текст. Текст, который я хотел бы проверить, это html-теги. Он работает, когда я помещаю теги рядом друг с другом. Я хочу убедиться, что текстовая область имеет теги, но с любым количеством пробелов или разрывов. Заранее спасибо!Javascript check textarea для конкретного текста

Вот мой полный код:

<!DOCTYPE html> 
<html> 

<head> 

<script language="JavaScript" type="text/javascript"> 
<!-- 
function checkform (form) 
{ 
    // see http://www.thesitewizard.com/archive/validation.shtml 
    // for an explanation of this script and how to use it on your 
    // own website 

    // ** START ** 
    if (form.email.value == "<html><head></head><body></body></html>") { 
    var node = document.getElementById("grr"); 
    node.innerHTML = "<p>" + "Correct!" + "</p>"; 
    form.email.focus(); 
    return false ; 
    } 
    // ** END ** 
    return true ; 
} 
//--> 
</script> 


</head> 

<body> 

<form action="#" method="post" onsubmit="return checkform(this);"> 
<textarea id="email" type="text" rows="5" columns="5"></textarea> 
<input type="submit" value="submit"> 
</form> 

<p id="p1">Hello World!</p> 

<script> 
document.getElementById("p1").innerHTML="New text!"; 
</script> 

<div id="grr">Text</div> 

</body> 
</html> 
+0

бы вы хотели поместить ' "

" + "Правильно!" + "

' внутри текстового поля, в результате он должен появиться как есть? –

+0

''

+ "Правильно!" + "

" 'появляется под текстовой областью, когда текстовая область имеет в ней правильные теги html. Если это то, о чем вы спрашиваете – nviens

ответ

0

Там не много хороших способов сделать это. Как правило, вы должны анализировать HTML в браузере и возвращать HTML-строку, так как это решит проблему по большей части, но вы не можете вставить весь документ с тегами <html>, <head> и все в другой элемент, так что вы вероятно, остается регулярное выражение решения, что-то вроде этого

function checkform(form) { 
    var div = document.createElement('div'), 
     email = document.getElementById('email'); 

    if (email.value.replace(/\>\s+\</g, '><').trim() == "<html><head></head><body></body></html>") { 
      var node = document.getElementById("grr"); 
      node.innerHTML = "<p>" + "Correct!" + "</p>"; 
      email.focus(); 
      return false; 
    } 

    return true; 
} 

FIDDLE

+0

Вот и все! – nviens

+0

Мне было интересно, есть ли способ проверить эти значения даже с другими тегами html между – nviens

+0

@ user3272438. Вы действительно не можете проверить допустимый HTML, так как это потребует создания парсера, что будет большой работой, но вы можете проверить определенные строки, вот пример -> http://jsfiddle.net/rmkQt/2/ – adeneo

Смежные вопросы