html
1<p>このような場合に、<i class="hit" style="background-color:#377eb8;">数字</i>の77だけにヒットさせたい。文字としての数字の77だけヒットさせたい、styleを指定している数値のほうにはヒットさせたくない。</p>
javascriptの正規表現でreplaceを使って、上記<p>タグ内で2番目と3番目に出現する数字の「77」だけにヒットさせたいです(「#377eb8」の「77」にはヒットしないようにする)。
期待する結果
html
1<p>このような場合に、<i class="hit" style="background-color:#377eb8;">数字</i>の<i class="hit" style="background-color:#ff0000;">77</i>だけにヒットさせたい。文字としての数字の<i class="hit" style="background-color:#ff0000;">77</i>だけヒットさせたい、styleを指定している数値のほうにはヒットさせたくない。</p>
失敗の結果
html
1<p>このような場合に、<i class="hit" style="background-color:#3<i class="hit" style="background-color:#ff0000;">77</i>eb8;">数字</i>の<i class="hit" style="background-color:#ff0000;">77</i>だけにヒットさせたい。文字としての数字の<i class="hit" style="background-color:#ff0000;">77</i>だけヒットさせたい、styleを指定している数値のほうにはヒットさせたくない。</p>
よろしくお願いします。
'<p>このような場合に<i class="hit" style="background-color:#377eb8;">数字</i>の77だけにヒットさせたい。</p>'.match(/77/g)[1]
実際には、2か所だけではなく、もっと多くの77が存在するようなケースで使いたいです。ですので[1]のようなやり方では不十分です。よろしくお願いします。
replaceで文字としての数字のほうだけヒットさせたい、styleを指定している数値のほうにはヒットさせたくないという意味です。意味わかりますでしょうか?うまく表現できなくてすいません。
例が一つしかないので条件が絞れないということを婉曲的に書いてみました。
https://developer.mozilla.org/ja/docs/Web/API/HTMLElement/innerText
このようなものを使う手もあります。
> ですので[1]のようなやり方では不十分です。よろしくお願いします。
ということは、質問文の「2番目に出現する数字の「77」だけにヒットさせたいです」は間違いと言うことですか?であれば訂正しましょう。
> 2番目と3番目に出現する数字の「77」だけにヒットさせたいです
であれば、[1]と[2]でいいのでは?
条件が帰納的にも演繹的にも絞れないので、どのような条件でみつけるのかを論理的に説明するか、もしくは 5 つくらいの例を挙げてください。
5 つの例は、当然同じものを単語だけかえてずらずらと並べるのではなく、「この 5 つで成り立てば実際に使える」というものでなければいけません。
現状では 1 つの例しかなく、「この例でマッチする正規表現」はたくさん考えられますが、それが実際に使えるとは限りません。
回答1件
あなたの回答
tips
プレビュー