3月 4, 2014
Javascriptで全角半角混在の文字列をキレイに短縮
昔書いた「PHPで全角半角混在の文字列をキレイに短縮」をJavascriptで書いたのでシェア。
普通にstr.slice(0,20)で全角半角混在の文字列をスライスすると、
行末がガタガタになるから、1文字ずつ全角半角判別して短縮する。
function strLength( strSrc ){
len = 0;
strSrc = escape(strSrc);
for(i = 0; i < strSrc.length; i++, len++){
if(strSrc.charAt(i) == "%"){
if(strSrc.charAt(++i) == "u"){
i += 3;
len++;
}
i++;
}
}
return len;
}
function multByteStringSlice( str , strLimit ){
var isSlice = false;
while( strLength(str) > strLimit ){
str = str.slice(0, str.length-1);
isSlice = true;
}
if( isSlice ){
str += '...';
}
return str;
}
Demo: http://gallery.renowan.com/archive/multByteStringSlice/app/index.html
rr