JavaScript-js正则如何替换某规定标签外的内容?

JavaScript-js正则如何替换某规定标签外的内容?

甜柠檬 发布于 2017-04-08 字数 708 浏览 1201 回复 3

刚才遇到这样一个问题,从数据库中提取出来一段内容,然后将其中的 换行也就是 n 替换为 <br/>
但是指定标签内的 n 不替换。
举例字符串为:

var str = "xxxxnxxx&lt;coding&gt;xxxnxxxnxxxn&lt;/coding&gt;xxxxnnxx&lt;coding&gt;xxx/n&lt;/coding&gt;";
或者:
var str ="&lt;coding&gt;xxxxnxxxn&lt;/coding&gt;xxxn&lt;coding&gt;xx&lt;/coding&gt;xxx";
或者 :
var str ="xxxn&lt;coding&gt;xnnxx&lt;/coding&gt;"
或者 :
var str = "xxxnxxxnx";

总之是不能替换 &lt;coding&gt; 与 &lt;/coding&gt; 之间的 n

在补充一句,上边的 x 表示任何字符,有可能也是html标签。

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

偏爱自由 2017-10-21 3 楼

下面这样正则可以实现:

<SCRIPT LANGUAGE="JavaScript">
<!--
var str = "xxxxnxxx&lt;coding&gt;xxxnxxxnxxxn&lt;/coding&gt;xxxxnnxx&lt;coding&gt;xxxn&lt;/coding&gt;";
//var str ="&lt;coding&gt;xxxxnxxxn&lt;/coding&gt;xxxn&lt;coding&gt;xx&lt;/coding&gt;xxx";
//var str ="xxxn&lt;coding&gt;xnnxx&lt;/coding&gt;"

alert(str.replace(/([sS]*?)(&lt;coding&gt;[sS]+?&lt;/coding&gt;)([sS]*?)/ig, function($1){return $1.replace(/[sS]*?&lt;coding&gt;/ig,function($1){return $1.replace(/n/ig,"<br>")})}));

//-->
</SCRIPT>

泛泛之交 2017-08-18 2 楼

用 n 进行 分割
成数组 对数组元素进行操作之后 再使用 n 串起来

甜柠檬 2017-05-12 1 楼

js 中我觉得先把所有指定标签查出来,然后把n替换成某一特殊字符,然后替换n,最后还原,替换特殊字符为n.