【问题标题】:How do I check if textarea is HTML? [duplicate]如何检查 textarea 是否为 HTML? [复制]
【发布时间】:2014-03-19 04:25:47
【问题描述】:

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

【问题讨论】:

标签: javascript php


【解决方案1】:

您可以将内容发布到 html 验证脚本或在线服务并显示结果。

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

【讨论】:

    【解决方案2】:

    在 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 来嗅探壁虎 html 显示标记中的错误标题属性。其他浏览器将需要 w3 验证器的服务器端代理,或您自己的服务器提供的现场 html 验证服务。

    【讨论】:

      【解决方案3】:

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

      【讨论】:

      • 通过 htmlspecialchars 检查意味着任何带有 & 符号的字符串都将返回有效?
      • 这不会告诉 OP 内容是 valid HTML(不管 OP 所说的有效是什么意思)
      猜你喜欢
      • 1970-01-01
      • 2014-05-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-27
      • 2011-07-02
      • 2018-07-03
      相关资源
      最近更新 更多