String.prototype.cut= function(len) {
    var val=this; if (val=="undefined") { return ""; }
    var cl = 0; len = parseInt(len);
    if (val.length<len) return val;
    for (var i=0;i<val.length;i++) {
      var code = val.charCodeAt(i);
      if (code<0 || code>255) { cl+=2 } else { cl++ }
      if (cl>len) { return val.substr(0,i==0?i=1:i);}
    }; 
    return "";
  }
s="人abcde";
alert(s.cut(4))

解决方案 »

  1.   

    HRESULT substringData(
        long offset,
        long count,
        BSTR *data);Parameters
    offset :[in] Offset, in characters, from the beginning of the string. An offset of zero indicates copying from the start of the data. 
    count :[in] Number of characters to retrieve from the specified offset. 
    data :[out] Substring to return. 
    这是substring的用法,我的意见是用编码判断,英文字母的ASCII编码在40~120之间(精确的话要查一下书),先用substring取一个字符,判断它是否在范围内,是就取10个字,否就取20个字。