有人可以帮助我使用 regexp javascript 代码,用<br />在<pre>分区中找到的换行符 "\n"替换所有标签。例如,传递给包含以下内容的函数的字符串:
<pre class="exampleclass">1<br />2<br />3</pre>
Run Code Online (Sandbox Code Playgroud)
应返回为(未显示换行符,但我希望您明白):
<pre class="exampleclass">1(newline)2(newline)3</pre>
Run Code Online (Sandbox Code Playgroud)
另一个例子:
<div>foo<br />bar<pre>1<br />2</pre></div>
Run Code Online (Sandbox Code Playgroud)
返回为:
<div>foo<br />bar<pre>1(newline)2</pre></div>
Run Code Online (Sandbox Code Playgroud)
请注意,类和部门的内容以及字符串中的其他内容(其他 div 等)是动态的。另一方面,<br />标签不会改变,因此不需要迎合<br>或其他变体。
注意 - 我正在处理字符串,而不是 HTML 元素.. 以防万一我提出问题的方式有任何混淆。
你可以用
str.match(/<pre(?:.*?)>(?:.*?)<\/pre>/g);
Run Code Online (Sandbox Code Playgroud)
然后对于所有比赛
replaced = match.replace(/<br \/>/g, '\n');
str.replace(match, replaced);
Run Code Online (Sandbox Code Playgroud)
所以大概是这样的:
var matches = str.match(/<pre(?:.*?)>(?:.*?)<\/pre>/g),
len = matches.length,
i;
for (i = 0; i < len; i++) {
str = str.replace(matches[i], matches[i].replace(/<br \/>/g, '\n'));
}
Run Code Online (Sandbox Code Playgroud)
编辑:更改为匹配<pre class="">。
| 归档时间: |
|
| 查看次数: |
5913 次 |
| 最近记录: |