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
0 件のコメント:
コメントを投稿