最近的一个项目中需要将手机号码按一定长度用标识符隔开,便于阅读,网上找了一会发现没有合适的代码于是就自己手写了一个函数,可以按指定长度往字符串中插入分隔符,有需要的朋友可以拿去。
var split_str=false; function insert_flg(str,flg,sn){ str=str.replace(new RegExp(flg,"g"),""); var newstr=""; var tmp; var len=str.length;//长度 var num=len/sn;//分段数 var start; var end; //len%sn //能否完整分段 0:是 for(i=0;i<num;i+=1){ if (len%sn!=0){//不能完整分段 start=i*sn-1; end=i*sn+(sn-1); }else{ start=i*sn; end=(i+1)*sn; } start=start<0?0:start; if (end<=len){ tmp=str.substring(start,end); } newstr+=(end>=len)?tmp:tmp+flg; } split_str=newstr; return newstr; } $(function(){ var phone=$("#phone"); phone.blur(function(){//失去焦点时触发 var cont=phone.val(); cont=jQuery.trim(cont); var str_p='-';//拆分符号 var s=4;//每段长度 if (!cont||split_str==cont) return false; //焦点再次离开时检查内容有无变化 phone.val(insert_flg(cont,str_p,s)); }) })