javascript正则表达式有没有办法替换字符串后半部分的字符

is there a way for javascript regex to replace a character in the second half of a string

本文关键字:后半部 字符 字符串 替换 正则表达式 有没有 javascript      更新时间:2023-09-26

我在生成将"_"更改为"的正则表达式时遇到了问题。例如下面的字符串:

<h2><a href=?ref=ref_url&?title=title_name_unoriginal>7s6s**title_name_unoriginal**7s6s<h2>

我想更改带星号的文本,使下划线变成空格。我添加了7s6s,这样我就可以在正则表达式中识别该区域:

/7s6s[a-zA-Z0-9_]+7s6s/

所以我想知道是否有人知道将title_name_unoriginal更改为title name unoriginal的方法。注意:有一个title_name_unoriginal就在它之前,我不想更改它。同样对于正则表达式,下划线的数量可以是0-100s。所以它也可以是CCD_ 5。

str.replace(/7s6s.+7s6s/g,function($0){return $0.replace(/_/g," ")})

做什么很简单;首先,它获取所有以7s6s开头和结尾的文本(regex:7s6s.+7s6s),然后因为函数replace接受一个函数作为第二个参数来执行替换,所以我们可以对所选文本进行替换。在这种情况下,它只是另一个正则表达式,将"_"替换为"

在最后一个"/"后面加上"g"。

如果希望正则表达式在找到匹配项后继续,则需要使用"全局"修饰符。

你能用替换吗?

var linktext = document.getElementById('foo').innerHTML;
linktext.replace("_", " ");