この問題を解決するために、昨日、バイト数に基づいて文字列をインターセプトする関数を書きました。
具体的な使い方は非常に簡単で、String.subString(start, end)のように使うだけです。例: var str = "愛撫します"; var str1 = str.subCHStr(2, 4); 🎜>
コード
//文字列を計算しますlength
String.prototype.strLen = function() {
var len = 0;
for (var i = 0; i if (this.charCodeAt (i) > 255 || this.charCodeAt(i) }
return len;
}
// 文字列を文字に分割しますそれらを配列に格納します
String.prototype.strToChars = function(){
var chars = new Array();
for (var i = 0; i chars [i] = [this.substr(i, 1), this.isCHS(i)];
}
String.prototype.charsArray = chars;
return chars;
}
//文字が漢字かどうかを判断します
String.prototype.isCHS = function(i){
if (this.charCodeAt(i) > 255 || this.charCodeAt(i) < 0)
return true; end){
var len = 0;
var str = "";
this.strToChars();
for (var i = 0; < this.length i ) {
if(this.charsArray[i][1])
len = 2;
else
len ;
if (end return str;
else if (start < len)
str = this.charsArray[i][0];
}
return str;
}
/ /インターセプト文字列 (開始バイト長バイトからインターセプト)
String.prototype.subCHStr = function(start, length){
return this.subCHString(start, start length);
}