我知道一些基本的正则表达式,但这就是问题所在。每个charachter都将被封闭在一起。
我希望替换被引号包围的内容,因此,类似"something"
的内容实际上是
<span class="charachter">"</span>
<span class="charachter">s</span>
<span class="charachter">o</span>
<span class="charachter">m</span>
<span class="charachter">e</span>
<span class="charachter">t</span>
<span class="charachter">h</span>
<span class="charachter">i</span>
<span class="charachter">n</span>
<span class="charachter">g</span>
<span class="charachter">"</span>
(换行只是为了方便。它只是真实的一条长线。)
我如何将其纳入:
<span class="charachter green">"</span>
<span class="charachter green">s</span>
<span class="charachter green">o</span>
<span class="charachter green">m</span>
<span class="charachter green">e</span>
<span class="charachter green">t</span>
<span class="charachter green">h</span>
<span class="charachter green">i</span>
<span class="charachter green">n</span>
<span class="charachter green">g</span>
<span class="charachter green">"</span>
?我正在使用正则表达式,因为“某些东西”可能是任何东西。
BTW:允许在代码中使用jQuery
还有更多的东西.charachter类,我不想添加类“green”,只是用引号括起来的
答案 0 :(得分:2)
这可能会有效,具体取决于页面的复杂程度:
var quotes = $("span.charachter:contains('\"')");
for (var i = 0; i < quotes.length - 1; i++) {
quotes.eq(i).nextUntil(quotes.eq(++i)).andSelf().addClass("green");
}
工作演示: http://jsfiddle.net/3SRdD/2/
这假定:
span.charachter
只会包含一个字符。span.charachter
的兄弟姐妹总是更多span.charachter
元素,至少在结束报价之前。答案 1 :(得分:1)
简单的jquery解决方案 - 类似的东西?
$(".character").addClass("green")
答案 2 :(得分:1)
如果您的模式看起来像这样/"(.*)"/
,您应该在明星 * 之后添加问号?以使其不合适,例如{{1} }
答案 3 :(得分:0)
你不能可靠地做到这一点,因为“也会出现在跨度内。”
但是如果你愿意限制更多,你可以搜索<span class=".*"
- 但它只会匹配看起来完全相同的标签。