问个正则写法

文盲老顾
WEB应用领新星创作者
博客专家认证
2012-05-04 02:03:24

dim str
str = "<a href=""http://www.163.com"">网易</a><div style=""border:1px solid black"" class=""nav""><span class=""nav1"">导航</span></div><table cellspancing=""1"" width=""100%""><tr><td colspan=""3"">这里要去掉标签内所有除了 colspan=""2"" 以外的属性,仅保留colspan的属性</td></tr></table>"


我现在想把上边这个字符串中,所有标签内的属性,除了 colspan 以外的都清除掉,该怎么写?


dim reStr
reStr = " [\w]+=""[^""]*?"""


我这样的正则不能把 colspan 排除在外,并且不能保证是标签内的...

期望的结果是


str = "<a>网易</a><div><span>导航</span></div><table><tr><td colspan=""3"">这里要去掉标签内所有除了 colspan=""2"" 以外的属性,仅保留colspan的属性</td></tr></table>"
...全文
65 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
文盲老顾 2012-05-04
  • 打赏
  • 举报
回复

(a + '\n\n' + a.replace(/\s(?!colspan)\w+?="[^"]*?"(?=[^<>]*?>)/gi,''));


这次是真的完成了.....正则好难学啊....
文盲老顾 2012-05-04
  • 打赏
  • 举报
回复

var a = '<a href="http://www.163.com">网易</a><div style="border:1px solid black" class="nav"><span class="nav1">导航</span></div><table cellspancing="1" width="100%"><tr><td colspan="3" align="left">这里要去掉标签内所有除了 colspan="2" 以外的属性,仅保留colspan的属性,比如 class="aa" </td><td valign="top" colspan="2">haha</td></tr></table>';
alert(a + '\n' + a.replace(/(<\w+)(\s+?(?!colspan="[^"]*?")[^<>]*?)>/gi,'$1>'));


可惜我的正则也出错了....
文盲老顾 2012-05-04
  • 打赏
  • 举报
回复
-_-b,你那个和我在2楼的基本一致,不能排除标签外的标签,都给删掉了
001007009 2012-05-04
  • 打赏
  • 举报
回复
怎么错了?
文盲老顾 2012-05-04
  • 打赏
  • 举报
回复
alert(a + '\n' + a.replace(/(<\w+)(\s+?(?!colspan="[^"]*?")[^<>]*?)>/gi,'$1>'));

自己搞出来了....
文盲老顾 2012-05-04
  • 打赏
  • 举报
回复
楼上的结果出错了,得到的结果是

<a>网易</a><div><span>导航</span></div><table><tr><td colspan="3">这里要去掉标签内所有除了 colspan="2" </td></tr></table>
001007009 2012-05-04
  • 打赏
  • 举报
回复
<script>
var a = '<a href="http://www.163.com">网易</a><div style="border:1px solid black" class="nav"><span class="nav1">导航</span></div><table cellspancing="1" width="100%"><tr><td colspan="3">这里要去掉标签内所有除了 colspan="2" 以外的属性,仅保留colspan的属性</td></tr></table>';
alert(a + '\n' + a.replace(/\s(?!colspan).+?="[^"]+?"/gi,''));
</script>
文盲老顾 2012-05-04
  • 打赏
  • 举报
回复

var a = '<a href="http://www.163.com">网易</a><div style="border:1px solid black" class="nav"><span class="nav1">导航</span></div><table cellspancing="1" width="100%"><tr><td colspan="3">这里要去掉标签内所有除了 colspan="2" 以外的属性,仅保留colspan的属性,比如 class="aa" </td></tr></table>';
alert(a + '\n' + a.replace(/ (?!colspan)\w+?="[^"]*?"/gi,''));


不知道怎么限制只替换标签内的属性
文盲老顾 2012-05-04
  • 打赏
  • 举报
回复
<script>
var a = '<a href="http://www.163.com">网易</a><div style="border:1px solid black" class="nav"><span class="nav1">导航</span></div><table cellspancing="1" width="100%"><tr><td colspan="3">这里要去掉标签内所有除了 colspan="2" 以外的属性,仅保留colspan的属性</td></tr></table>';
alert(a + '\n' + a.replace(/ (.(?!colspan))*?="[^"]*?"/gi,''));
</script>


我在这里写了个 ?!colspan 无效,还是把这个属性去掉了

28,390

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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