【问题标题】:Match and replace a string using JavaScript regex使用 JavaScript 正则表达式匹配和替换字符串
【发布时间】:2014-01-13 22:22:14
【问题描述】:

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

我需要提取正则表达式匹配的结果,然后用空字符串替换它们。如果我使用匹配,那么它不会执行替换,如果我使用替换,它不会返回匹配的内容。是否可以同时完成这两项工作,还是总是分两步进行?

例如,我需要将一个HTML字符串中的所有标签提取出来,单独保存以供处理,并用空字符串替换。

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

我可以立即处理 span 标签,或者如果它们一起返回,则稍后处理。

【问题讨论】:

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

标签: javascript html regex


【解决方案1】:

是这样的:

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

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

【讨论】:

  • 感谢您的示例。
猜你喜欢
  • 2015-11-30
  • 1970-01-01
  • 2012-01-25
  • 1970-01-01
  • 1970-01-01
  • 2019-10-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多