4

次のようなものを含む DOM 要素からの文字列があります。

<span class='greenhornet'>Can you catch the green?</span>

greenという単語の位置を知る必要があります。

この場合、 pattern をセットアップすると、もちろん/green/JSexec()は最初に出現した(位置 13) を返します。

JS regexp にgreen!という単語を無視するように指示する方法はありますか? またはこれを行う簡単な方法がある場合は?<>

ああ、HTML を削除することもできません。

ありがとう。

4

2 に答える 2

2

コメント提供者(およびuser1883592)が示唆しているように、ここではHTMLを削除するか、HTMLからテキストを解析することが正解です。HTMLで正規表現を使用することは、敗者のゲームです。あなたは警告されました。

しかし、そうは言っても、もしあなたが本当にそのゲームをプレイしたいのなら、私はあなたの任期と最後の閉じ括弧の間に開き括弧がないことを確認することから始めます。言い換えると:

var greenRegex = />[^<]+(green)/;
var position = "<span class='greenhornet'>Can you catch the green?</span>".search(greenRegex);
// position = 25, not 13
于 2012-12-20T01:06:33.227 に答える
0

span要素のinnerHTMLを取得できます。正規表現は必要ありません。

于 2012-12-20T00:17:57.567 に答える