//用惯了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; }