コードをコピー コードは次のとおりです: //合計文字数を取得します<BR>function getChars(str) {<BR> var i = 0;<BR> var c = 0.0;<BR> var unicode = 0;<BR> var len = 0;<BR> if (str == null || str == "") {<BR> return 0;<BR> }<BR> len = str.length;<BR> for(i = 0; i < len; i ) {<BR> unicode = str.charCodeAt(i);<BR> if (unicode < 127) { //単一文字か二重文字かを判定します<BR> c = 1; <BR> } else { //chinese<BR> c = 2;<BR> }<BR> }<BR> return c;<BR>}<BR>function sb_strlen(str) {<BR> return getChars(str) );<BR>}<BR>/ /インターセプト文字<BR>関数 sb_substr(str, startp, endp) {<BR> var i=0; rstr = '';<BR> var len = str.length;<BR> var sblen = sb_strlen(str);<BR> if (startp < 0) {<BR> startp = sblen startp;<BR> }<BR> if (endp < 1 ) {<BR> endp = sblen endp; // - ((str.charCodeAt(len-1) <127) ? 1 : 2);<BR> }<BR> // の開始点<BR>を見つけます。 (i = 0; i < len; i ) {<BR> if (c >= startp) {<BR> Break;<BR> }<BR> var unicode = str.charCodeAt(i);<BR> if (unicode < 127) {<BR> c = 1;<BR> } else {<BR> c = 2;<BR> }<BR> }<BR> // <BR> for(i = i; i < len i ) {<BR> var unicode = str.charCodeAt(i);<BR> if (unicode <127) {<BR> c = 1;<BR> } else {<BR> c = 2;<BR> }<BR> rstr = str.charAt(i);<BR> if (c >= endp) {<br> Break;<br> }<br> }<br> return rstr ;<br>}<br>//呼び出し例:<br>function getShortFileName(filename) {<br> short_filename = filename;<br> if (sb_strlen(short_filename) > 61) {<br> short_filename = sb_substr( short_filename, 0, 36) ' ... ' sb_substr (short_filename, -20);<br> }<br> return short_filename;<br>}<br>var char = 'ni あなた 2 はとても良いです! '<br>js_self = character.substr(4);<br>test = sb_substr(character,4);<br>alert("js_self:" js_self "ext:" test);<br> コードをコピーします コードは次のとおりです。 function mb_strlen(str) { var len = 0; for(var i = 0; i len = str.charCodeAt(i) } return len;} すでに入力されています: