使用JavaScript regex匹配并替换字符串

时间:2014-01-13 22:22:15

标签: javascript html regex

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

我需要提取正则表达式匹配的结果,然后用空字符串替换它们。如果我使用匹配,那么它不执行替换,如果我使用替换,它不会返回匹配的内容。是否可以在一个过程中完成两个过程,还是总是分两个步骤?

例如,我需要从HTML字符串中提取所有标记,将其保存以便单独处理,并将其替换为空字符串。

var html = "This is HTML<br><style>#a{}</style>This is more HTML.<style>#b{}</style>.

我可以立即处理span标记,如果它们全部一起返回,则可以稍后处理。

1 个答案:

答案 0 :(得分:2)

它是这样的:

   > 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>"]

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