JavaScript一些常用的正则表达式

最近在学习JavaScript正则表达式,在这里跟大家分享一下个人写的一些正则表达式(每个人的写法不一样,仅供参考,如有不足请大家多指教)

验证输入零和非零开头的数字  /^(0?|([1-9]\d+))(\.\d{1,2})?$/

验证输入由26个英文字母组成的字符串 /^[a-z]*[A-Z]*$/

验证验证身份证号(15位或18位数字)  /^(\d{15,18})$|^(\d{17}x)$/i

验证月份,格式01-31  

//月份1 3 5 7 8 10 12 天数范围为01-31 
//表达式  ((0?[13578]|1[02]))\-((0?[1-9])|((1|2)[0-9])|30|31)
//月份4 6 9 11 天数范围 01-30
//表达式应为 (0?[469]|[11])\-((0?[1-9])|((1|2)[0-9])|30)
//月份2 平年28

//表达式   02-(0?[1-9]|[1][0-9]|[2][0-8])

目前只做了验证平年的,有待提高

表达式为  /^((((0?[13578]|1[02]))\-((0?[1-9])|((1|2)[0-9])|30|31))|((0?[469]|[11])\-((0?[1-9])|((1|2)[0-9])|30))|(02-(0?[1-9]|[1][0-9]|[2][0-8])))$/

验证手机号码验证前两位(注:现在有13、14、15、17、18开头的)   /^(1[34578])(\d{9})$/

验证邮箱(简单版本)  /^([1-9][0-9]{6,10})(@)([a-z]{2,10})(.)((com)|(cn))$/

扫描二维码关注公众号,回复: 11281705 查看本文章

验证匹配url   /^(http|https|ftp):\/\/([w]{3})(.)([a-z]+)(.)(com|cn|net)$/

验证匹配整数,例如:12,-12,+12    /^([1-9]\d*)|(-[1-9]\d*)|(\+[1-9]\d*)$/

验证判断输入是否是qq号码  (PS:qq总长度是6位以上,首位不能为0)  /^([1-9][0-9]{6,10})$/

小练习三道校招题:

1.给定这样一个连字符串,vars1 = "dgfhfgh254bhku289fgdhdy675gfh";

写一个function提取上述字符串中的字符最终输出:[254,289,675]2016美团校招)


2. 给定这样一个连字符串,vars2 = "get-element-by-id";
写一个function转换为驼峰命名法形式的字符串输出:getElementById2017 美团校招)

toUpperCase()转成大写

 

3.写一段简单的正则表达式,匹配并取出字符串https://www.baidu.com/s?cl=3中的域名部分(https://www.baidu.com17百度校招)


答案:

1.

<body>
    <h4>判断给定字符串</h4>
    <p>var s1 = "dgfhfgh254bhku289fgdhdy675gfh";</p>
    <p>写一个function提取上述字符串中的字符最终输出:[254,289,675]</p>
    <p id="txt"></p>
    <script>
        var oP = document.getElementById("txt");
        var s1 = "dgfhfgh254bhku289fgdhdy675gfh";
        fn(s1);
       function fn(msg){
           var pattern = /\d+/g ;
           var str = '';
           var arr = [];
           //输出:[254,289,675]
           str = msg.match(pattern);
           arr.push(str);
           oP.innerHTML = arr;
       }
    </script>
</body>

2.

<body>
    <p>给定这样一个连字符串,var s2 = "get-element-by-id";</p>
    <p>写一个function转换为驼峰命名法形式的字符串输出:getElementById</p>
    <p>toUpperCase()转成大写</p>
    <h4 id="txt"></h4>
    <script>
        var oTxt = document.getElementById("txt");
        var s2 = "get-element-by-id";
        fn(s2)
        function fn(msg) {
            var str = msg.split('-');
            var len = str.length;
            // console.log(len)
            for (var i = 0 ; i<len ; i++){
                str[i] = str[i].charAt(0).toUpperCase()+str[i].substr(1,str[i].length-1);
            }
            var str1 = str.join('')
            //console.log(str1)
            oTxt.innerHTML = str1;
        }
    </script>
</body>

3.

<body>
    <p>写一段简单的正则表达式</p>
    <p>匹配并取出字符串”https://www.baidu.com/s?cl=3”中的域名部分(https://www.baidu.com)</p>
    <h4 id="txt"></h4>
    <script>
        var oTxt = document.getElementById("txt");

        var str="https://www.baidu.com/s?cl=3";

        var pattern=/https:\/\/([A-Za-z\.]+)\/\S+/;

        var result=pattern.exec(str);

        if(result){

            oTxt.innerHTML = result[1];

        }
    </script>
</body>

还在学,持续更新中.......







猜你喜欢

转载自blog.csdn.net/qq_40411946/article/details/80770812
今日推荐