JavaScriptで「 」を扱う場合の注意点

2015年2月13日

Javascript Tips プログラミング

javascriptでHTMLの文字列を操作している時に、 「 」文字列を変換(文字置換)する方法がよく分からず、 最終的に行った方法をメモしておきます。

ハマったポイント

マッチングする際に、半角スペースの文字コードが2つ存在する事が判明。 通常の「 」(半角スペース)と「 」。 「 」はHTMLの特殊文字として半角スペースをHTMLで表示させる場合によく用いられる。 例えば、HTMLソースに「 」を複数書いても、ブラウザで見た時には1つ分しか表示されない。 ところが、「 」は、書いた個数分表示されるので、スペーサーとしても よく使われている。 この を文字列置換する方法がわからなかった。

対応方法

文字コードから変数に入れて、変数を元に置換をするといい。 ただし、replace関数だと、/gが使えないので、先頭行しか変換されないおそれがあるので、以下のように記述 var text = element.innerText; var nbsp = String.fromCharCode( 160 ); //var value = text.replace( nbsp, "A" ); var value = text.split(nbsp).join(" "); ※ポイントとしては、nbspを一度半角スペースに置換し、半角スペースの扱いは各機能に任せるようにした。 ※jsのtrim関数を作ってみたので、便利に使えるかも。 /** 文字列のtrim化(※文字列の前箇所と後箇所の以下文字列を除外する。) 1、改行コード(¥n , ¥r) 2、タブ(¥t) 3、半角スペース(code:32) 4、 (code:160) **/ var text2trim = function(txt){ var nbsp = String.fromCharCode(160);//  txt = txt.split(nbsp).join(' '); txt = txt.replace(/\r/g,''); txt = txt.replace(/\n/g,''); txt = txt.replace(/^\t/g,''); txt = txt.replace(/\t$/g,''); txt = txt.replace(/^ /g,''); txt = txt.replace(/ $/g,''); return txt; };

参考サイト

http://blog.livedoor.jp/taka_saku2000/archives/52003914.html

このブログを検索

ごあいさつ

このWebサイトは、独自思考で我が道を行くユゲタの少し尖った思考のTechブログです。 毎日興味がどんどん切り替わるので、テーマはマルチになっています。 もしかしたらアイデアに困っている人の助けになるかもしれません。