使用正则表达式仅在跨度内删除回车

时间:2010-08-11 04:09:16

标签: javascript regex string

我在一个字符串中有这段文字:

<p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: center; line-height: normal;" align="center"><i style=""><span style="" lang="ES-TRAD">some text
another text<o:p></o:p></span></i></p>

<p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: center; line-height: normal;" align="center"><i style=""><span style="" lang="ES-TRAD">some text more
and some text more<o:p></o:p></span></i></p>

如果我这样做

string.replace(/[\r\n]/g, "");

所有回车都将被删除,我只想删除那些介于“某些文本”和“另一文本”之间的人,我的意思是在跨度内。

提前致谢。

1 个答案:

答案 0 :(得分:1)

/[\r\n]+(?=(?:(?!<span\b)[\s\S])*<\/span>)/i

这将匹配<span>元素内的换行符。它还会在开头<span>标记内以及<span>元素中包含的任何其他标记内匹配。这可能并不重要,但我处于完全披露的情绪中。 ;)