写个正则,帮忙?

95306 2002-09-23 04:24:13
[abc]asdfasldkfjlasd[/abc]

怎么把[abc][/abc]变为空的
...全文
43 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
qiushuiwuhen 2002-09-23
  • 打赏
  • 举报
回复
高版本可用
<script>
str="[abc]asdfasldkfjlasd[/abc]"
str=str.replace(/\[(.+?)\](.+?)\[\/\1\]/g,"$2");
alert(str);
</script>
qiushuiwuhen 2002-09-23
  • 打赏
  • 举报
回复
/\[([^\]]+)\]([^[]+)\[\/\1\]/g
<script>
str="[abc]asdfasldkfjlasd[/abc]"
str=str.replace(/\[([^\]]+)\]([^[]+)\[\/\1\]/g,"$2");
alert(str);
</script>
95306 2002-09-23
  • 打赏
  • 举报
回复
是呀,太长了吧,兄弟再帮改改
Reve 2002-09-23
  • 打赏
  • 举报
回复
感觉上边的表达式应该可以写的简洁点,不过那是我接触表达式不久时写的,现在不高兴修理了。:)
Reve 2002-09-23
  • 打赏
  • 举报
回复
不是很清楚“怎么把[abc][/abc]变为空的”,估计是我下边的第二种replace的方法:
<script>
function blacketReplace1(str)
{
var tmpstr = "";
while (tmpstr != str) {
tmpstr = str;
str = str.replace(/\[([^\]]*)\]([^\[]*)\[\/([^\[]*)\]/g,
function($0,$1,$2,$3,$4,$5,$6,$7,$8,$9,$10) {
return "[" + $1 + "][/" + $3 + "]";
});
}
return str;
}
str = "[abc]dfsdfds[/abc][fdls]";
alert(blacketReplace1(str));


function blacketReplace(str)
{
var tmpstr = "";
while (tmpstr != str) {
tmpstr = str;
str = str.replace(/(\[)([^\]]*)(\])([^\[]*)(\[\/)([^\[]*)(\])/g,
function($0,$1,$2,$3,$4,$5,$6,$7,$8,$9,$10) {
return $4;
});
}
return str;
}

str = "[abc]dfsdfds[/abc][fdls]";
alert(blacketReplace(str));

</script>

87,996

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧