今天做了一个项目,里面涉及到处理字符串并返回处理完成生成的数组,其实就是一个小方法,不过因为脑子这一阵萌萌哒,就顺便写下来。
就不解释了,挺简单的一段。代码如下:
//删除字符串中非中英文字符并返回一个数组
function getMsg1(msg){
var msgLen = msg.length;
var exp = /^[A-Za-z0-9\u4e00-\u9fa5]+$/;
//情话初始数组
var _msgArr = [];
//情话最终数组
var msgArr = [];
//将非中英文字符替换为空格
for(var i=0;i<msgLen;i++){
if(!exp.test(msg[i])){
msg = msg.replace(msg[i],' ');
}
}
//生成初始情话数组
_msgArr = msg.split(' ');
var _msgArrLen = _msgArr.length;
//处理情话数组中为空的一项
for(var a=0;a<_msgArrLen;a++){
if(_msgArr[a]){
//最终情话数组
msgArr.push(_msgArr[a])
}
}
return msgArr;
}
//按长度分割字符串并返回字符串数组
function getMsg2(msg,cutNum){
msg = msg.replace(/\s+/g,'');
var len2 = msg.length;
var begin = 0;//开始截取的位置索引
var arr = [];//最后的结果数组
var num = 0;//cutNum的整数倍
var times = 0;//截取的次数
var sum = 0;//总的截取的字符数量
var cont = true;
if(len2>cutNum){
for(var i=0;i<len2;i++){
if(len2 - sum < cutNum){
if(cont){
arr.push(msg.substring(num,len2));
cont=false;
}
}else{
num++;
if(num%cutNum == 0){
times++;
sum = times*cutNum;
arr.push(msg.substring(begin,num));
begin+=cutNum;
}
}
}
}else{
arr.push(msg);
}
return arr;
}
getMsg2是项目中用到的一个处理方法,不过在我们的测试人员测试过程中,编写的测试用例不能完全满足,有遗漏的字符串种类,所以经过几次修改。修改的核心是删除了字符串中的空格,因为存在一个或多个空格的字符串,在不考虑空格位置的情况下,有可能得出的字符串数组会有字符串截取不全的情况。
网友评论