作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的代码如下,
var str = '<p>(a) test <span style="text-decoration: line-through;">
test</span> <span style="font-family: arial, helvetica, sans-serif;">
123 test <span style="font-family: SutonnyMJ;"> test test
<span style="background-color: #008000;">test <span style="background-color: #ffffff;">
test <span style="color: #800080;">test</span></span></span></span></span></p>
<table style="height: 43px;" width="250"><tbody><tr><td>test</td>
<td>test</td></tr></tbody></table>';
for(var eq in G){
var an=new RegExp(eq,"g");
str=str.replace(an,G[eq]); //For Example an = /t/g and G[eq] = a For One Index
}
如果我使用这个没有 HTML 标签的字符串,结果是完美的。
我想制作一个常规的快速图案 -
1. it will not replace any HTML Tag(
Example:<p>,</p> <div>,</div>, ,<br/>,<span>,</span>,<table>,</table> and etc)
and HTML Tag Atrribute(Example : style etc).
2. it will not replace inner/element of HTML Tag(Eexample : span,div etc) if font-fmaily
is not SutonnyMJ (font-family: SutonnyMJ) in style attribute ;
我假设替换后test将是abca。
结果字符串如下所示,
result_str ='<p>(a) abca <span style="text-decoration: line-through;">
abcd </span> <span style="font-family: arial, helvetica, sans-serif;">
123 test <span style="font-family: SutonnyMJ;"> abca abca
<span style="background-color: #008000;">abca <span style="background-color: #ffffff;">
test <span style="color: #800080;">abca</span></span></span></span></span></p>
<table style="height: 43px;" width="250"><tbody><tr><td>abca</td>
<td>abca</td></tr></tbody></table>';
在 result_str 123 test 中没有更改,因为它的父样式字体系列不是 SutonnyMJ
如何编写 JavaScript 正则表达式模式。请问有什么建议吗?
最佳答案
该模式的起点可能是这样的:
(?:<[^\>]>)+(?:[^.]*(test)[^.]*)+(?:<\/[^\>]>)*
将 test
替换为您的字符串。
**缺少的是字体系列不应该是 SutonnyMJ 的限制。 **
在这里摆弄并改进它:<强> http://regexr.com/3aj63
关于javascript - 如何在javascript正则表达式中替换没有html标签的字符串的每个字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28983004/
我是一名优秀的程序员,十分优秀!