加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

正则表达式常见用法

发布时间:2020-12-14 05:35:22 所属栏目:百科 来源:网络整理
导读:?手机号码验证 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

?手机号码验证

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

?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读