🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
``` //解析 URL Params 为对象 var str = 'http://www.zhufengpeixun.cn/?lx=1&from=wx&b=12&c=13#qqqq'; function getParam(url){ var reg = /([^?=&]+)=([^?=&#]+)/g; let obj = {}; url.match(reg).forEach(item=>{ let a = item.split('='); // ['lx','1'] obj[a[0]] = a[1] }) return obj } getParam(str); ``` //================================================= ``` //模板引擎实现 let template = '我是{{name}},年龄{{age}},性别{{sex}}'; let data = { name: '姓名', age: 18 } render(template, data); // 我是姓名,年龄18,性别undefined 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; // 如果模板没有模板字符串直接返回 } ``` //================================================= ``` // 出现次数最多的字符 var str = 'sfgsdfgsertdgfsdfgsertwegdsfgertewgsdfgsdg'; function getMax2(str) { str = str.split('').sort().join('');// 把字符串进行排序 let key = '',num = 0; str.replace(/(\w)\1*/g,function($0,$1){ if($0.length > num){ num = $0.length; key = $1; } }) return{ key,num } } getMax2(str); ``` //================================================= ``` // 千分符的实现 // 100,000,00 //方法1 var str = '1234567'; // 1,234,567 function moneyFormate(str){ str = str.split('').reverse().join('') let s = ''; for(let i = 0; i < str.length ; i++){ i%3 == 2 ? s+=str[i]+',' : s+=str[i] } s = s.split('').reverse().join('') return s } moneyFormate(str);// 1,234,567 // 方法2 var str = '1234567'; function moneyFormate2(str){ let s = ''; // s = str.replace(/\d{1,3}(?=(\d{3})+$)/g,function(a){ // console.log(arguments) // return a + ',' // }) s = str.replace(/(\d{1,3})(?=(\d{3})+$)/g,'$1,'); return s; } moneyFormate2(str); ``` //================================================= ``` var str = ' sdfgsg fsgfsd '; // 使用正则去除字符串的首尾空格 // 以 1 到 多个 空格开头或者结尾的 都替换成空; var res = str.replace(/^ +| +$/g,'') ```