因此,我想使用javascript替换文本正文中HTML标记之外的所有单词。检查以下说明。
我想将其转换为:
<tag with-attr="something"></tag><tag>Text to match</tag><tag>Text to Match</tag>
...对此:
<tag with-attr="something"></tag><tag>Manipulated Text</tag><tag>Manipulated Text</tag>
现在,我有一个可以匹配所有标签及其包含文本的正则表达式:
\<[^>]*\>
但是我不确定如何invert
表达,可以这么说。
编辑
另外,我希望使用replace
/match
函数,而不是split
,因为我想保留标签信息并向工作页面吐出新信息。
使用包含paren的splitExp)RegExp和其他数组方法可以使“流处理”变得相当简单:
'<tag with-attr="something"></tag><tag>Text to match</tag>Text to Match<tag>'
.split(/(<[^>]+>)/).map(function(x,i){
if(!(i%2) && x){ x= escape(x); }
return x;
}).join("");
示例输出:
"<tag with-attr="something"></tag><tag>Text%20to%20match</tag>Text%20to%20Match<tag>"
escape()只是为了表明textContent确实已被更改...我只保证在您的示例附近提供输入。深度嵌套或无效的HTML可能会欺骗任何RegExp,但是我敢肯定会有其他人提出来...
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句