如何移除 (//) 块和标签?
CDATA,是 Character Data 的缩写,是一段代码块,旨在防止解析器进行解析。有时我们的数据包含预定义的字符,例如 “<” 和 “&”,这些字符不应被 XML 或 HTML 解析,因此我们将它们包含在 CDATA 块中。您可以参考这篇文章了解更多关于 CDATA 的信息。
要使用 JavaScript 从脚本标签中移除 CDATA 块,我们可以采用以下方法。
- 使用正则表达式
- 使用 replaceAll 方法
使用正则表达式
正则表达式是一种字符模式,用于对任何文本进行匹配和替换操作。为了查找和移除 CDATA 块,我们使用以下正则表达式模式,并使用 String.replace( ) 方法。
正则表达式
/<!\[CDATA\[[\s\S]*?\s*\]\]>/g
语法
str.replace("regex", "")
这里 str 是您要从中移除 CDATA 的字符串,regex 是用于查找块数据的正则表达式。
示例
在下面的程序示例中,我们使用 String replace() 方法移除脚本元素内部的 CDATA 块和标签。我们将上面定义的正则表达式作为参数传递给 replace() 方法,第二个参数为空字符串。
<html> <body> <h2> Program to remove the (// <![CDATA[ , //]]>) blocks; tags inside a script element in JavaScript </h2> <script> let text = `<script type="text/javascript"> <![CDATA[ var A=new Array(); .......................... .......................... ]]> </script> some text2 ........................ some text3 ........................ some text4 ........................ <script type="text/javascript"> <![CDATA[ var B=new Array(); .......................... .......................... ]]> <script> some text5 ........................` text = text.replace(/<!\[CDATA\[[\s\S]*?\s*\]\]>/g, "") document.write(text) </script> </body> </html>
使用 replaceAll 方法
在这种方法中,我们将使用 String.replaceAll() 方法,此方法替换给定字符串的所有出现。此方法接受两个参数,第一个参数是要搜索的模式或字符串,第二个参数是要替换给定字符串的字符串。在这里,我们将替换所有 <![CDATA[ 和 ]]> 的出现,并替换为空字符串。但您应该记住,我们无法移除 CDATA 的内容,我们只能移除 CDATA 标签。
语法
string.replaceAll("str", "")
这里 string 是脚本块字符串,str 分别是 <![CDATA[ 和 ]]>。
示例
在下面的程序示例中,我们使用 String replaceAll() 方法移除脚本元素内部的 CDATA 块和标签。我们将上面定义的正则表达式作为参数传递给 replaceAll() 方法,第二个参数为空字符串。
<html> <body> <h2> Program to remove the (// <![CDATA[ , //]]>) blocks; tags inside a script element in JavaScript </h2> <script> let text = `<script type="text/javascript"> <![CDATA[ var A=new Array(); .......................... .......................... ]]> </script> some text2 ........................ some text3 ........................ some text4 ........................ <script type="text/javascript"> <![CDATA[ var B=new Array(); .......................... .......................... ]]> <script> some text5 ........................` text = text.replaceAll("<![CDATA[", "") text = text.replaceAll("]]>", "") document.write(text) </script> </body> </html>
在本教程中,我们讨论了两种从给定脚本元素中移除 CDATA 块的方法。我们建议您使用第一种方法,因为在第二种方法中,您无法移除 CDATA 块内部的内容。如果您只想移除 CDATA 标签,那么您可以使用第二种方法。
数据结构
网络
关系数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP