正则表达式常见用法

 手机号码验证

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;
        }    

分享图片

 

分享图片

相关文章

正则替换html代码中img标签的src值在开发富文本信息在移动端...
正则表达式
AWK是一种处理文本文件的语言,是一个强大的文件分析工具。它...
正则表达式是特殊的字符序列,利用事先定义好的特定字符以及...
Python界一名小学生,热心分享编程学习。
收集整理每周优质开发者内容,包括、、等方面。每周五定期发...