javascript - 怎么使用正则表达式完美匹配HTML标签(仅标签)?
大家讲道理
大家讲道理 2017-04-11 12:53:00
[JavaScript讨论组]

需要匹配以下字符串,要求去掉html标签,只剩下“数量"number"”。

< i class="help" data-content="数量(a>b>c>d)">数量"number" < / br >

我已经写了一个

/<\s*\/?\s*[a-zA-z_]([^>]*?["][^"]*["])*[^>"]*>/g

有没有更完美的匹配方案呢?

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全部回复(6)
阿神

看了下回答,都不完美吧,html标签内可以有<>这两个字符,其次还有双引号单引号规则,具体搜一下腾讯前端博客关于正则一文,手机码字不方便写代码。

天蓬老师

提供个歪思路:仅限浏览器环境,node就算了,倒腾正则太费劲

var p = document.createElement('p');
p.innerHTML = '<i class="help" data-content="数量(a>b>c>d)" style="cursor: pointer;">数量"number"</i> </br>';
console.log(p.innerText);
ringa_lee

/<.+?>/g试试

PHP中文网
/">([^<]+)/g
阿神
(new RegExp('<\\s*(\\w+).*>(.+)</\\s*\\1\\s*>','ig')).exec('< i class="help" data-content="数量(a>b>c>d)" style="cursor: pointer;">数量"number"</ i  > < / br >')[2]
阿神

个人觉得可以试试这种方案:即不用正则表达式,把这段html代码append到页面中,页面会生成DOM结构,然后获取这些DOM结构的tagName,即可得到纯净的标签

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号