2011-12-01 9 views
1

私はいくつかの基本正規表現を知っていますが、ここには事があります。すべての文字はスパンで囲まれます。 私は引用符で囲まれているものを交換することにしたいので、"something"のようなものが実際にjavascript regexpは引用符で囲まれたものを置き換えますか?

<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> 

?私はregexpを使用しています。なぜなら、「何か」は何でもよいからです。

はBTW:コード内でのjQueryの使用は、私はクラス「緑」を追加したくない.charachterクラス、引用符で囲まれたばかりのものですより多くの物事が

あります許可されている

+0

をチェックアウトし、この/"(.*?)"/

のように、それはungreedy作るには?あなたの例では、CSSクラスを追加するだけです。何か不足していますか? – RoccoC5

+0

スペルミスは意図的ですか? –

+0

とにかく*する*単純な正規表現は 's /" charachter "/" charachter green "/'です(それは "ネスティング/カウント"の問題を避けるため一般的な形式ではありません)。もちろん、これはもっと多くのことをする可能性も秘めています。また、最後の太字のステートメントはゼロを意味します:) –

答えて

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"); 
} 

の作業のデモ:

  • span.charachterのみとなります:http://jsfiddle.net/3SRdD/2/

    これは、その前提としていこれまでに1つの文字が含まれています。

  • 比類ない見積もりは決してありません。
  • span.charachterの次の兄弟は、少なくとも引用符まで、span.charachterの要素が常に続きます。
+0

これはまた、ライブラリの使用がOKであると仮定しています。 – nnnnnn

+0

@nnnnnn - これは前提ではありません。質問には「BTW:コード内でのjQueryの使用が許可されています。 – gilly3

+0

私の謝罪は、明らかに私はそれを逃した(私はjQueryタグを探していた)。 – nnnnnn

0

」だけでなくスパンの内側に現れるので、あなたは、確実にそれを行うことはできません

しかし、より限定的にあなたが喜んでいる場合、あなたは<span class=".*"を検索することができます - 。しかし、それだけで正確に見えるタグが一致しますその。

1

シンプルなjqueryソリューション - 何かのような?

$(".character").addClass("green") 
+0

+1正規表現は[常に]回答ではないため、適用されない可能性もありますが、コンテキストは曖昧です。 –

+0

私は自分の質問に強いテキストを追加しました。読んでください。私の曖昧な文脈には申し訳ありません。私はクラスの緑を追加する引用だけで物事をしたい –

+0

"引用符で物事"を定義してください。申し訳ありませんが私の貧しい人々の理解が、それはあなたがカバーしたいものとそうでないものの例を挙げるのに役立ちます。ありがとう。 –

関連する問題