javascript util method--字符串相关操作

代码可能有些地方不够简洁,在这里做一下备忘

 

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];
 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值