我知道一些基本的正则表达式,但这就是问题所在。每个字符都将包含在跨度中。
我希望用引号括起来的东西被替换,所以,像 "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>
(换行只是为了方便。在真实情况下只有 1 长行。)
我如何把它变成:
<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>
?我正在使用正则表达式,因为“某物”可能是任何东西。
顺便说一句:允许在代码中使用 jQuery
还有更多我不想添加“green”类的 .charachter 类,只是用引号引起来的那些
最佳答案
这可能有效,具体取决于您页面的复杂程度:
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
元素,至少在结束引号之前是这样。
关于javascript 正则表达式替换引号中的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8349581/