寻求一些帮助,我的正则表达式有点生锈......
我试图用一个字符替换 javascript 中 HTML 标签之外的所有字符。
例如,用破折号“-”替换这些字符,
<div class="test">Lorem Ipsum <br/> Dolor Sit Amet</div>
将被替换为:
<div class="test">------------<br/>--------------</div>
所以我正在寻找
str.replace(/YourMagicalRegEx/g, '-');
请帮忙,我知道如何使用正则表达式返回不在 html 标签内的文本,使用正则表达式返回 html 标签内的文本,但不在 html 标签内的所有字符似乎相当棘手......!
额外的挑战:必须兼容 IE7 及更高版本。
使用 jQuery:
html = '<div class="test">Lorem Ipsum <br/> Dolor Sit Amet</div>';
node = $("<div>" + html + "</div>");
node.find('*').contents().each(function() {
if(this.nodeType == 3)
this.nodeValue = Array(this.nodeValue.length).join('-')
});
console.log(node.html())
(我手头没有 IE7,请告诉我这是否有效)。
如果你更喜欢正则表达式,它是这样的:
html = html.replace(/<[^<>]+>|./g, function($0) {
return $0[0] == '<' ? $0 : '-';
});
基本上,我们用标签本身替换标签,用破折号替换标签外的字符。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)