<script> if (typeof ty === "undefined") { var ty = { chainOnLoad: function(onLoadHandler..</script>
这样:
//<![CDATA[<script> if (typeof ty === "undefined") { var ty = { chainOnLoad: function(onLoadHandler.. </script>//]]>
如何做到这一点?
<script> if (typeof ty === "undefined") { var ty = { chainOnLoad: function(onLoadHandler..</script>
这样:
//<![CDATA[<script> if (typeof ty === "undefined") { var ty = { chainOnLoad: function(onLoadHandler.. </script>//]]>
如何做到这一点?
你可以把你的机会,与此
查找(<(?:script(?:\s+(?>"[\S\s]*?"|'[\S\s]*?'|(?:(?!/>)[^>])?)+)?\s*>)[\S\s]*?</script\s*>)
更换<![CDATA[$1]]>
然而,问题是,浏览器解析CDATA为<![CDATA[[
[\ S \ S] *?]]>
这意味着你必须为]]>
序列处理$ 1(。在这里,),然后做一些事情,以减轻它。
否则cdata将提前终止,留下剩余的垃圾。
请注意,你不能只找到CDATA没有在第一
找到所有标签来/先得。
原因是CDATA,像任何标签可以隐藏在其他结构内。
一般来说,表达解析所有标签是这个
<(?:(?:(?:(script|style|object|embed|applet|noframes|noscript|noembed)(?:\s+(?>"[\S\s]*?"|'[\S\s]*?'|(?:(?!/>)[^>])?)+)?\s*>)[\S\s]*?</\1\s*(?=>))|(?:/?[\w:]+\s*/?)|(?:[\w:]+\s+(?:"[\S\s]*?"|'[\S\s]*?'|[^>]?)+\s*/?)|\?[\S\s]*?\?|(?:!(?:(?:DOCTYPE[\S\s]*?)|(?:\[CDATA\[[\S\s]*?\]\])|(?:--[\S\s]*?--)|(?:ATTLIST[\S\s]*?)|(?:ENTITY[\S\s]*?)|(?:ELEMENT[\S\s]*?))))>
你会写回非脚本标记,当你得到一个脚本标签
做你的代替开始了。
分享你的研究可以帮助每个人。告诉我们你试过了什么,以及它为什么不符合你的需求。这表明你已经花时间去尝试帮助自己,它使我们避免重申明显的答案,最重要的是它可以帮助你得到更具体和相关的答案!另请参阅:[问] –
标签在哪里存在?与其他标签?或者在一个独立的字符串? – OmegaMan