js的instr和mid函数

//用惯了VB系列语法的instr和mid函数,在js里面处理字符串总是感觉束手束脚,必须自己写个函数来用!!!
//得闲连 right left instrRev也一起写了。。
function instr(str,s){
	var dotn=str.indexOf(s);
	if(dotn<0){return 0;}else{return (dotn*1+1);}
}

function mid(str,s,l){
	var outstr='';
	if(isUndefined(s)){return '';}//参数不足
	if(isUndefined(str)){return '';}//参数不足
	var sln=str.length;
	if(isNaN(s)){return '';}//参数非法
	//console.log(isNaN(s));
	s=s*1;
	if(isUndefined(l)){ //非数字isNaN		
		if(s>sln ){ //起点大于长度
			return '';
		}else{
			if((s-1)>sln ){//空
				return '';
			}else{
				for(var i=s;i<sln+1;i++){ //没有长度信息,取到完
					outstr+=str.charAt(i-1);//charAt从0计字符串,故要减一
				}		
				return outstr;
			}
		}	
	}else{
		if(isNaN(l)){ //非数字
			if(s>sln ){ //起点大于长度
				return '';
			}else{
				if((s-1)>sln ){//空console.log(sln);
					return '';
				}else{
					for(var i=s;i<sln+1;i++){ //没有长度信息,取到完
						outstr+=str.charAt(i-1);//charAt从0计字符串,故要减一
					}		
					return outstr;
				}
			}
		}else{
			l=l*1;
			if(s>sln ){ //起点大于长度
				return '';
			}else{
				if((s+l-1)>sln ){//起点加长度减1大于长度,只取剩余字符,取到完
					for(var i=s;i<sln+1;i++){
						outstr+=str.charAt(i-1);//charAt从0计字符串,故要减一
					}		
					return outstr;
				}else{
					for(var i=s;i<(s+l);i++){ //正常取法console.log(sln);
						outstr+=str.charAt(i-1);//charAt从0计字符串,故要减一
					}		
					return outstr;
				}
			}
		}
	}
}

function isUndefined(value){   
	//获得undefined,保证它没有被重新赋值   
	var undefined = void(0);
	return value === undefined; 
} 

猜你喜欢

转载自blog.csdn.net/jessezappy/article/details/79323352