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