2014-02-19 55 views
-6

如何检查用户在textarea中编写的内容是否为有效的HTML?它可以是PHP或Javascript。如何检查textarea是否为HTML?

+7

定义“有效的html”? – 2014-02-19 03:22:45

+0

也许你可以使用http://www.php.net/manual/en/domdocument.loadhtml.php - 加载后,你可以使用'similar_text'加载输入 –

回答

0

在PHP中,这将是非常简单的:

if($text!=htmlspecialchars($text)) 
{ 
    echo 'This contains HTML tags!!'; 
} 

当然,这意味着一个符号将是有效的,所以你也可以做类似

function hasHtml($string) { 
    if ($string != strip_tags($string)) 
     return true; 
} 

您可以使用John Resig's HTML解析器的Javascript解决方案,或者做这样的事情:

function is_html(string) 
{ 
    return string.match("/<[^<]+>/").length != 0; 
} 
+2

通过htmlspecialchars检查将意味着任何带有&符号的字符串会返回有效? – flauntster

+2

这不会告诉OP,内容是*有效的* HTML(不管OP的含义是什么) –

0

你可以p将内容添加到html验证脚本或在线服务并显示结果。

您可能还想调查具有一些验证功能的PHP DOMDocument类。

0

在JS,这很容易,因为它有一个内置的HTML解析器:

function isHTML(str){ 
    var div=document.createElement("div"); 
    div.innerHTML=str; 
    return div.children.length>0; 
} 

注意这将验证有一些良好的HTML,或HTML,并且怪癖成结构良好的HTML。严格的有效性是另一回事,只有FireFox可以让你ajax view-source:urls在gecko html显示标记中嗅探错误标题属性。其他浏览器需要w3验证程序的服务器端代理或由您自己的服务器提供的现场html验证服务。