5

我有一些文字:

1. Lorem &laquo;ipsum&raquo; dolor sit amet, consectetur<br/>
2. adipisicing &laquo;elit&raquo;, sed do eiusmod tempor<br/>
3. incididunt ut &laquo;labore&raquo; et dolore magna aliqua.<br/>

我想将所有“ &amp;laquo;”替换为“ &amp;#171;”,将所有“”替换&amp;raquo;为“ &amp;#187;”。

这仅在第一行替换:

txt.replace(new RegExp("&amp;laquo;","gi"),"&amp;#171;").replace(new RegExp("&amp;raquo;", "gi"),"&amp;#187;");

其他行仍然没有改变。

我做错了什么?

4

2 回答 2

8

使您的正则表达式“多行”:

new RegExp("&amp;laquo;","gim")
于 2013-09-03T07:33:43.637 回答
1

用这个

txt.split( "&amp;laquo;" ).join( "&amp;#171;" ).split( "&amp;raquo;" ).join( "&amp;#187;" );

split 将您的字符串分解为由参数中的文本连接的片段数组。join 将这些片段粘回到一个字符串中,并在每个片段之间插入参数:D

请注意,每种方法都会创建一个数组(片段)或一个字符串(粘合在一起的片段),因此您应该执行 txt = txt.split(...

于 2013-09-03T07:08:05.963 回答