手机号码验证
function isPhone(tel){ var regx = /^1[34578]\d{9}$/; return regx.test(tel) }
身份证验证
function isCardNo(number){ var regx = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/; return regx.test(number); }
千位分隔符
function parsetoMoney(num){ num = parseFloat(num.toFixed(3)); let [integer,decimal] = String.prototype.split.call(num,‘.‘); integer = integer.replace(/\d(?=(\d{3})+$)/g,‘$&,‘); return integer + (decimal ? (‘.‘ + decimal) : ‘‘); }
查找字符串中出现最多的字符和个数
let str=‘abdhabdfedsaaadebas‘; let num = 0,char=‘‘; let other = str.split(‘‘).sort().join(‘‘); console.log(other); let re = /(\w)\1+/g; other.replace(re,($0,$1)=>{ if(num<$0.length){ num = $0.length; char = $1; } }) console.log(`字符串${str}中的字符出现最多的是${char},出现了${num}次`);
转为驼峰命名
function f(s){ return s.replace(/-\w/g,function(x){ return x.slice(1).toupperCase(); }) }
模板引擎实现
function render(template,data){ const reg = /\{\{(\w+)\}\}/; //模板字符串正则 if(reg.test(template)){ //判断模板里是否有模板字符串 const name = reg.exec(template)[1]; //查找当前模板里第一个模板字符串的字段 template = template.replace(reg,data[name]); //将第一个模板字符串渲染 return render(template,data); //递归的渲染并返回渲染后的结构 } return template; }
解析URL Params为对象
function parseParams(url){ const paramsstr = /.+\?(.+)$/.exec(url)[1]; //将?后面的字符串取出来 const paramsArr = paramsstr.split(‘&‘); //将取出来的字符串用&分割后存到数组中 let paramsObj = {}; paramsArr.forEach(param=>{ if(/=/.test(param)){ //处理有value的参数 let [key,val] = param.split(‘=‘); //分割key和value val= decodeURIComponent(val); //解码 val= /^\d+$/.test(val) ? parseFloat(val):val; //判断是否转为数字 if(paramsObj.hasOwnProperty(key)){ //如果对象有key,则添加一个值 paramsObj[key] = [].concat(paramsObj[key],val); }else { // 如果对象没有这个key,创建key并设置值 paramsObj[key] = val; } }else{ //处理没有value的参数 paramsObj[param] = true; } }) return paramsObj; }