- ベストアンサー
¥マークの検索について
¥マークの検索について 文字列内から「¥」マークのみを検索してくる方法を探しています。 htmlに書かれた文字列 「~○○○○○\200○○○~」(実際には「~○○○○○¥200○○○~」) から「¥」マークがあるかどうかを調べようとしています。 var a = "~○○○○○\200○○○~"; if(a.indexOf('\\') > 0){ alert("あるよ"); } としようとしましたが、¥マークを検知できません。 どのようにすれば検知するようになるでしょうか
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
#3 です。 scriptコードにミスがあったので、修正しました。 <p id="Yen">¥200</p> <script type="text/javascript"><!-- var str = document.getElementById('Yen').firstChild.nodeValue; if (str.indexOf('\u00A5') !== -1) { alert('あるよ'); } //--></script>
その他の回答 (4)
- 神崎 渉瑠(@taloo)
- ベストアンサー率44% (1016/2280)
別解で。 var YEN=String.fromCharCode(165); //var YEN=unescape('%A5'); if(a.indexOf(YEN) > 0){ 未検証です。 バックスラッシュと円マークの文字コードが違うのは他の方が説明されているとおりです。 変数aの生成(代入)の仕方次第では、 if(a.indexOf('¥') > 0){ としないと行けないかもしれません。 (調べてみたところ、innerHTMLでもinnerText/contentTextのどちらも、実体参照を文字に変換した後の物を取得するようです。)
お礼
if(a.indexOf('¥') > 0){ ではうまくいかなかったのですが、 キャラコードで判別することは出来ました!
- think49
- ベストアンサー率59% (285/482)
¥ は '\u00A5' です。 \ ('\u005C') と等価ではありません。 <p id="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)
>変数aに入れる文字列の内容はこちら側ではいじれない そうなると単純処理ではむりですね。 \マーク+数字はある種のエスケープシーケンスになり8進数の200、 すなわち10進数の128のコードとして認識されています。
- yambejp
- ベストアンサー率51% (3827/7415)
たんじゅんに var a = "~○○○○○\\200○○○~"; ですね
補足
変数aに入れる文字列の内容はこちら側ではいじれないので、スクリプトのほうをどうすれば言いか教えていただきたいです。
お礼
実装できました! '\u00A5'とすればよかったのですね。 ありがとうございます