js中正则表达式的应用实例

js中正则表达式的应用实例(包括面试题)

1、找重复项最多的字符和个数

<script>
   var str = 'sassdfdfffdasdffffffsdsdddsss';
   var arr = str.split('');//先把字符串分割为字符串数组
   str = arr.sort().join('');对数组进行排序后再将数组转化为字符串
    var value = '';
    var index = 0;
    var re = /(\w)\1+/g;
    str.replace(re,function($0,$1){
       if(index<$0.length){
          index = $0.length;
          value = $1;
       }
    });
    alert('最多的字符:'+ value +' ,重复的次数:'+index);//最多的字符:f ,重复的次数:10
</script>

2、去掉空格

<script>
    var str = ' hel  lo '
    function trim(){
        var re = /^\s+|\s+|\s+$/g;
        return str.replace(re,'');
    }
    alert('('+trim(str)+')');//(hello)
</script>

3、判断是否为邮箱email

验证规则: 电子邮箱的正确写法一般为: 用户名@邮箱网站.com(.cn) 

第一部分:由字母、数字、下划线、短线“-”、点号“.”组成

第二部分:为一个域名,域名由字母、数字、短线“-”、域名后缀组成(域名后缀一般为两位到三位。例如:com cn net现在域名有的也会大于四位)

 
 function isEmail(str){
        var reg =/^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((\.[a-zA-Z0-9_-]{2,3}){1,2})$/;
        return reg.test(str);
    }

4、验证手机号码

验证规则: 11位数字,以1开头

 function isEmail(str){
        var reg =/^1([0-9]){10}$/; //也可以为 var reg= /^1\d{10}$/;
        return reg.test(str);
    }

5、验证是否由数字和字母组成

 function isEmail(str){
        var reg =/^([0-9a-zA-Z])+$/;
        return reg.test(str);
    }

6、如何获取一个字符串中的数字字符,并按数组形式输出

例如:一串字符串:ddjsd234sdjs45sdda83ndas333sa9382ssd2

var str ='dgfhfgh254bhku289fgdhdy67';
    var arr = [];
    function arrFn(){
        var re = /\d+/g ;
        arr.push(str.match(re));
        return arr;
    }

7、判断字符串是否存在连续重复的字母

var re = /([a-zA-Z])\1+/;
8、判断是否已元音字母结尾
var re = /[aeiou]$/i;  //不要忘了添加不区分大小写的字符i
9、判断是否符合USD格式

规则:给定字符串 str,检查其是否符合美元书写格式 
1、以 $ 开始 
2、整数部分,从个位起,满 3 个数字用 , 分隔 
3、如果为小数,则小数部分长度为 2 
4、正确的格式如:$1,023,032.03 或者 $2.03,错误的格式如:$3,432,12.12 或者 $34,344.3**

 var str ='$1,023,032.03';
      var re = /^\$\d{1,3}((,\d{3}))*(\.\d{2})?$/;  //需要注意的是特殊字符要加转义符号\

10、获取URL参数

规则:
1. 指定参数名称,返回该参数的值 或者 空字符串 

2. 不指定参数名称,返回全部的参数对象 或者 {} 
3. 如果存在多个同名参数,则返回数组**
//    获取 url 参数
    function getUrlParam(sUrl, sKey) {
        var arr={};
        sUrl.replace(/\??(\w+)=(\w+)&?/g,function(match,p1,p2){
            //console.log(match,p1,p2);
            if(!arr[p1]){
                arr[p1]=p2;
            }
            else {
                var p=arr[p1];
                arr[p1]=[].concat(p,p2);
            }

        })
        if(!sKey)return arr;
        else{
            for(var ele in arr){
                if(ele==sKey){return arr[ele];}
            }
            return "";
        }
    }


  • 2
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值