是否有一种方法可以让javascript正则表达式替换字符串后半部分中的字符

时间:2012-01-06 05:37:10

标签: javascript regex

我一直无法制作一个将“_”改为“”的正则表达式。例如下面的字符串:

<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。所以它也可能是title_name_un_ori_ginal

3 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

在最后一个“/”之后,添加“g”。

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

答案 2 :(得分:0)

您可以只使用替换吗?

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