Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/452.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用JavaScript正则表达式匹配并替换字符串_Javascript_Html_Regex - Fatal编程技术网

使用JavaScript正则表达式匹配并替换字符串

使用JavaScript正则表达式匹配并替换字符串,javascript,html,regex,Javascript,Html,Regex,编辑不是重复的问题。这详细说明了使用函数而不是字符串来处理替换字符串的能力 我需要提取正则表达式匹配的结果,然后用空字符串替换它们。如果我使用match,那么它不会执行替换,如果我使用replace,它不会返回匹配的内容。是可以一次完成这两项工作,还是始终需要两个步骤 例如,我需要从一个HTML字符串中提取所有标记,将其单独保存以供处理,然后用一个空字符串替换它 var html = "This is HTML<br><style>#a{}</style>Th

编辑不是重复的问题。这详细说明了使用函数而不是字符串来处理替换字符串的能力

我需要提取正则表达式匹配的结果,然后用空字符串替换它们。如果我使用match,那么它不会执行替换,如果我使用replace,它不会返回匹配的内容。是可以一次完成这两项工作,还是始终需要两个步骤

例如,我需要从一个HTML字符串中提取所有标记,将其单独保存以供处理,然后用一个空字符串替换它

var html = "This is HTML<br><style>#a{}</style>This is more HTML.<style>#b{}</style>.
var html=“这是html
#a{}这是更多的html。#b{}。
我可以立即处理span标记,如果它们同时返回,则可以稍后处理。

如下所示:

   > html = "This is HTML<br><style>#a{}</style>This is more HTML.<style>#b{}</style>"
   > tags = []
   > html.replace(/<.+?>/g, function(match) { tags.push(match); return "" })
   "This is HTML#a{}This is more HTML.#b{}"
   > tags
   ["<br>", "<style>", "</style>", "<style>", "</style>"]
>html=“这是html
#a{}这是更多的html。#b{}” >标签=[] >replace(//g,函数(匹配){tags.push(匹配);返回“”}) “这是HTML#a{}这是更多的HTML。#b{}” >标签 [“
”、“”、“”、“”、“”、“”、“”]

(关于正则表达式不适合解析标记语言的强制性通知).replace

.replace
接受回调,您可以提取其中的数据,然后返回替换。我不清楚您在问什么。您试图解决什么问题?您正在运行格式良好的html上的正则表达式的字符串是否正确?如果是,则可能需要使用xpath。如果该字符串是当前文档对象的一部分,则你肯定想使用xpath。谢谢大家。这不是一个重复的问题,因为我已经读过的另一篇文章没有解释使用函数作为第二个参数的能力。谢谢你的例子。