• ベストアンサー

¥マークの検索について

¥マークの検索について 文字列内から「¥」マークのみを検索してくる方法を探しています。 htmlに書かれた文字列 「~○○○○○\200○○○~」(実際には「~○○○○○¥200○○○~」) から「¥」マークがあるかどうかを調べようとしています。 var a = "~○○○○○\200○○○~"; if(a.indexOf('\\') > 0){ alert("あるよ"); } としようとしましたが、¥マークを検知できません。 どのようにすれば検知するようになるでしょうか

質問者が選んだベストアンサー

  • ベストアンサー
  • think49
  • ベストアンサー率59% (285/482)
回答No.4

#3 です。 scriptコードにミスがあったので、修正しました。 <p id="Yen">&yen;200</p> <script type="text/javascript"><!-- var str = document.getElementById('Yen').firstChild.nodeValue; if (str.indexOf('\u00A5') !== -1) { alert('あるよ'); } //--></script>

ayass
質問者

お礼

実装できました! '\u00A5'とすればよかったのですね。 ありがとうございます

その他の回答 (4)

回答No.5

別解で。 var YEN=String.fromCharCode(165); //var YEN=unescape('%A5'); if(a.indexOf(YEN) > 0){ 未検証です。 バックスラッシュと円マークの文字コードが違うのは他の方が説明されているとおりです。 変数aの生成(代入)の仕方次第では、 if(a.indexOf('&yen;') > 0){ としないと行けないかもしれません。 (調べてみたところ、innerHTMLでもinnerText/contentTextのどちらも、実体参照を文字に変換した後の物を取得するようです。)

ayass
質問者

お礼

if(a.indexOf('&yen;') > 0){ ではうまくいかなかったのですが、 キャラコードで判別することは出来ました!

  • think49
  • ベストアンサー率59% (285/482)
回答No.3

&yen; は '\u00A5' です。 \ ('\u005C') と等価ではありません。 <p id="Yen">&yen;200</p> <script type="text/javascript"><!-- var str = document.getElementById('Yen').firstChild.nodeValue; if (str.indexOf('\u00A5')) { alert('あるよ'); } //--></script> 10.5 Named character references — HTML5 (including next generation additions still in development) http://www.whatwg.org/specs/web-apps/current-work/multipage/named-character-references.html

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

>変数aに入れる文字列の内容はこちら側ではいじれない そうなると単純処理ではむりですね。 \マーク+数字はある種のエスケープシーケンスになり8進数の200、 すなわち10進数の128のコードとして認識されています。

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

たんじゅんに var a = "~○○○○○\\200○○○~"; ですね

ayass
質問者

補足

変数aに入れる文字列の内容はこちら側ではいじれないので、スクリプトのほうをどうすれば言いか教えていただきたいです。

関連するQ&A