javascript 正则表达式替换引号中的内容?

标签 javascript regex

我知道一些基本的正则表达式,但这就是问题所在。每个字符都将包含在跨度中。 我希望用引号括起来的东西被替换,所以,像 "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/

相关文章:

javascript - Mongodb "Can' t 规范化查询“错误

javascript - 需要更简单的方法来用 HTML 等价物替换嵌套的自定义标签

regex - 正则表达式匹配以特殊字符结尾的句子,如 . ! ?但忽略像 George W. Bush,Mr. 这样的话。 ETC

regex - 为什么人们捍卫正则表达式语法?

javascript - .match() 和正则表达式的意外输出

Ruby =~ 与 === 运算符

javascript - 如何将类添加到给定元素?

javascript - 映射字典数组以选择下拉列表?

javascript - 无法访问 Controller 上 ngRepeat 的过滤结果

javascript - 我如何在 Javascript 灯箱中打开 iframe