![](/img/trans.png)
[英]How to replace particular patterns of text with HTML tags on front-end using JavaScript?
[英]Replace particular html tags using javascript
我想将每个<li>
标记替换为#
和每个</li>
替换为<br />
我想我需要一个全局替换函数而不是一个简单的string.replace()
所以......
var s=obj1.innerHTML;
s = s.replace(/<li>/g,"# ");
s = s.replace(/</li>/g,"<br/>");
但它似乎不起作用。 有什么错误吗?
编辑:我将使用博客中的代码 & 这就是为什么它需要被解析。所以这就是为什么你看到"
而不是"
。
这样做:-
var s="<div>hello world <br/><li>First LI</li><li>Second LI</li></div>";
s = s.replace(/<li>/g, "#");
s = s.replace(/<\/li>/g,"<br/>");
alert(s);
obj1.innerHTML = obj1.innerHTML.replace(/<li>/g, '#').replace(/<\/li>/g, '<br>');
你只需要躲避/
中/li
否则将被视为正则表达式的分隔符。
抱歉,但如果li
标签有一些属性(如样式),您将拥有不想要的文本。 对我来说,最简单的方法是使用这样的正则表达式:
var regex = /(<li[^>]+>|<li>|<\/li>)/g;
s = s.replace(regex , ' ');
如果您想删除所有<tags> </tags>
(不仅是 li 标签),您应该执行以下操作:
var regex = /(<[^>]+>|<[^>]>|<\/[^>]>)/g;
s =s.replace(regex , ' ');
这工作得很好:
<html>
<head>
<script type="text/javascript" src="http://streamed.in/static/js/jquery-1.4.1.min.js"></script>
<script>
$(document).ready(function(){
var s = $('#obj1').html();
s = s.replace(/<li>/g,'#');
s = s.replace(/<\/li>/g,'<br/>');
$('#obj1').html(s);
});
</script>
</head>
<body id="obj1">
<li>omg 1</li>
<li>omg 2</li>
<li>omg 3</li>
<li>omg 4</li>
</body>
</html>
或者您可以尝试将第二个替换行替换为:
s.replace(/<\/li>/g,'<br/>');
如果您可以使用 jQuery,这将对您有所帮助:
$("li").after("#<br/>").remove();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.