文字列を操作するJavaScriptのLibraryのバージョンアップ。メソッド名のスペルミスの修正と、新たなメソッドの追加を行なった。新しいメソッドは、文字列をJavaScriptにエンコードする際、特定の文字列にターゲットを絞ったエンコードではなく、全ての文字列をunicode文字へバックスラッシュエスケープしている。
/*
================================================================================
Name : StringUtility
In : [none]
Out : [none]
Note : 文字列用ユーティリティ群
--------------------------------------------------------------------------------
Version : Ver1.0.0 | 2006/01/16 | 新規作成
: Ver1.0.1 | 2006/12/19 | シングルクォーテーションに対する処理を追加
: Ver1.0.2 | 2007/02/15 | スペルミス修正[getLengthByBite]->[getLengthByByte]
: Ver1.1.0 | 2007/02/17 | [StringUtility.Encode.JavaScriptComplete]を追加
--------------------------------------------------------------------------------
License : MIT license
URL : www.kanasansoft.com
================================================================================
*/
/*--------------------------------------------------------------------------------
コンストラクタ
--------------------------------------------------------------------------------*/
function StringUtility(){
}
StringUtility.Encode
= function(){
}
StringUtility.Decode
= function(){
}
StringUtility.Convert
= function(){
}
/*--------------------------------------------------------------------------------
HTMLエンコードを行なう
--------------------------------------------------------------------------------*/
StringUtility.Encode.HTML
= function(str){
return str .
replace( /&/ig , "&" ) .
replace( /</ig , "<" ) .
replace( />/ig , ">" ) .
replace( /'/ig , "'" ) .
replace( /"/ig , """ ) .
replace( / /ig , " " ) ;
}
/*--------------------------------------------------------------------------------
HTMLデコードを行なう
--------------------------------------------------------------------------------*/
StringUtility.Decode.HTML
= function(str){
return str .
replace( / /ig , " " ) .
replace( /"/ig , "\"" ) .
replace( /'/ig , "'" ) .
replace( />/ig , ">" ) .
replace( /</ig , "<" ) .
replace( /&/ig , "&" ) ;
}
/*--------------------------------------------------------------------------------
HTMLエンコードを行なう(Bookmarklet用)
--------------------------------------------------------------------------------*/
StringUtility.Encode.HTMLforBookmarklet
= function(str){
return str .
replace( /&/ig , "&" ) .
replace( /</ig , "<" ) .
replace( />/ig , ">" ) .
replace( /'/ig , "'" ) .
replace( /"/ig , """ ) ;
}
/*--------------------------------------------------------------------------------
JavaScriptエンコードを行なう
--------------------------------------------------------------------------------*/
StringUtility.Encode.JavaScript
= function(str){
return str .
replace( /\\/ig , "\\\\" ) .
/* replace( /\b/ig , "\\b" ) .*/
replace( /\f/ig , "\\f" ) .
replace( /\n/ig , "\\n" ) .
replace( /\r/ig , "\\r" ) .
replace( /\t/ig , "\\t" ) .
replace( /'/ig , "\\'" ) .
replace( /"/ig , "\\\"" ) ;
}
/*--------------------------------------------------------------------------------
JavaScriptエンコードを行なう
--------------------------------------------------------------------------------*/
StringUtility.Encode.JavaScriptComplete
= function(str){
var rtn = "";
for(var i=0;i<str.length;i++){
rtn += "\\u"+(("0000"+(str.charCodeAt(i).toString(16))).slice(-4));
}
return rtn;
}
/*--------------------------------------------------------------------------------
tabをspaceに変換する
--------------------------------------------------------------------------------*/
StringUtility.Convert.TabToSpace
= function(str,tabNumber){
var linesRN = str.split("\r\n");
for(var lineCntRN=0;lineCntRN<linesRN.length;lineCntRN++){
var linesN = linesRN[lineCntRN].split("\n");
for(var lineCntN=0;lineCntN<linesN.length;lineCntN++){
var linesR = linesN[lineCntN].split("\r");
for(var lineCntR=0;lineCntR<linesR.length;lineCntR++){
var wordsT = linesR[lineCntR].split("\t");
for(var wordsCntT=0;wordsCntT<wordsT.length-1;wordsCntT++){
wordsT[wordsCntT] += StringUtility.getRepeatString(
" " ,
tabNumber-(StringUtility.getLengthByByte(wordsT[wordsCntT])%tabNumber) )
}
linesR[lineCntR] = wordsT.join("");
}
linesN[lineCntN] = linesR.join("\r");
}
linesRN[lineCntRN] = linesN.join("\n");
}
var rtn = linesRN.join("\r\n");
return rtn;
}
/*--------------------------------------------------------------------------------
改行コードを"<br />"に変換する
--------------------------------------------------------------------------------*/
StringUtility.Convert.NewLineCodeToTag
= function(str){
return str .
replace( /\r\n/ig , "<br />" ) .
replace( /\r/ig , "<br />" ) .
replace( /\n/ig , "<br />" ) ;
}
/*--------------------------------------------------------------------------------
文字バイト長取得
--------------------------------------------------------------------------------*/
StringUtility.getLengthByByte
= function(str){
var count = 0;
for(var i=0;i<str.length;i++){
var code = str.charCodeAt(i);
while(code!=0){
count++;
code>>>=8;
}
}
return count;
}
/*--------------------------------------------------------------------------------
繰り返し文字取得
--------------------------------------------------------------------------------*/
StringUtility.getRepeatString
= function(str,num){
var rtn = "";
for(var i=0;i<num;i++){
rtn += str;
}
return rtn;
}