Posted in Javascript onApril 17, 2013
为了解决这个问题昨天写了根据字节数截取字符串的函数。
具体使用很简单,跟String.subString(start, end)一样使用就可。比如:var str = "诶必塞第衣爱抚即"; var str1 = str.subCHStr(2, 2); var str2 = str.subCHString(2, 4); alert(str1 + " == " + str2);
Code //计算字符串长度 String.prototype.strLen = function() { var len = 0; for (var i = 0; i < this.length; i++) { if (this.charCodeAt(i) > 255 || this.charCodeAt(i) < 0) len += 2; else len ++; } return len; } //将字符串拆成字符,并存到数组中 String.prototype.strToChars = function(){ var chars = new Array(); for (var i = 0; i < this.length; 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; else return false; } //截取字符串(从start字节到end字节) String.prototype.subCHString = function(start, end){ var len = 0; var str = ""; this.strToChars(); for (var i = 0; i < this.length; i++) { if(this.charsArray[i][1]) len += 2; else len++; if (end < len) return str; else if (start < len) str += this.charsArray[i][0]; } return str; } //截取字符串(从start字节截取length个字节) String.prototype.subCHStr = function(start, length){ return this.subCHString(start, start + length); }
中文字符串截取的js函数代码
声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。
Reply on: @reply_date@
@reply_contents@