代码可能有些地方不够简洁,在这里做一下备忘
1、获取字符串字节长度
// 获取字符串字节长度 function calculate_byte(sTargetStr) { var sTmpStr, sTmpChar; var nOriginLen = 0; var nStrLength = 0; sTmpStr = new String(sTargetStr); nOriginLen = sTmpStr.length; for ( var i=0 ; i < nOriginLen ; i++ ) { sTmpChar = sTmpStr.charAt(i); if (escape(sTmpChar).length > 4) { nStrLength += 2; } else if (sTmpChar!='\r') { nStrLength ++; } } return nStrLength; };
2、按固定字节长度截取字符串
var ssour ='中华人民共和国'; alert(extractFixedByte(ssour,2,8)); /* *str:传入的字符串 *beginIndex:起始字节数 *iLen:字节长度 * */ function extractFixedByte(str,beginIndex,iLen){ var bi=0; var bchar; var bstr=''; var bl=0; if(beginIndex!=0){ for(var j=0;bchar =str.charAt(j);j++){ bstr += bchar; bl +=(bchar.match(/[^\x00-\xff]/) != null ? 2 : 1); if(bl>=beginIndex) { break; } } bi = bstr.length; //获取从那个字符开始截取 } return interExtract(str,bi,iLen); } function interExtract(str,beginIndex,iLen){ var sstr=''; var l=0; var schar; if(str.replace(/[^\x00-\xff]/g,"xx").length <= iLen) { return str; } for(var i=beginIndex;schar=str.charAt(i); i++){ sstr += schar; l += (schar.match(/[^\x00-\xff]/) != null ? 2 : 1); if(l >= iLen) { break; } } return sstr; }
输出结果:华人民共
3、二维数组读写
var dataIns=new Array(); //先声明一维 for(var i=0;i<4;i++){ //一维长度为4 dataIns[i]=new Array(); //在声明二维 for(var j=0;j<5;j++){ //二维长度为5 dataIns[i][j]=''+i+j; } } readArray(dataIns); function readArray(data){ var dataIn=data; for(var i=0;i<dataIn.length;i++){ for(var j=0;j<dataIn[i].length;j++){ document.write(dataIn[i][j]+'\n'); } } }
4、通过逗号截取字符串
var tempStr = "OOO, AAA, BBB, CCC, DDD"; var tempArr = tempStr.split(","); var a = tempArr[0]; var b = tempArr[1]; var c = tempArr[2]; var d = tempArr[3]; var o = tempArr[4];