正则和API

<lable for="">用户名</lable>


<input type="text" placeholder="请输入用户名">


<span></span>


<script>


正则


一位数字\d===[0-9]


一位数字字母下划线\w===[0-9A-Za-z_]


一位空格tab键  \s


量词:规定出现的数量(次数)


有明确数量限制


用{m,n}表示最多出现m次,最少出现n次


{m,}表示最小出现m次,最多不限


{m}表示必须出现m次


没有明确限制


?可有可无  最多一次


*可有可无  多了不限


+至少一次  最多一次


分组或选择


()表示分组


|表示或者


var wrt=prompt('请输入...');


//可以包含数字字母下划线  6-12位


            var reg=/^\w{6-12}$/;


            var result=reg.test(wrt);


            console.log(result);


string中的正则API


1.search(/正则/);查找一个关键字所在的位置


找不到返回-1


找到的是关键字的位置,找不到内容


            var str='you can you up';


            var reg=str.search(/you/);


            console.log(reg);


2.match(/正则/);  获得所有和正则匹配的关键词 输出在数组


g表示输出所有和正则匹配的关键词


i表示忽略大小写


            var str='good gooD study,day day up';


            var num=str.match(/d/ig);


            console.log(num);


3.replace(/正则/,'替换值');


            var str='no zuo No die';


            var num=str.replace(/no/ig,'**');


            console.log(num);


4.split(/正则/); 切割  切割完变成数组


            var str='no,zuo,no,die';


            var num=str.split(/,/);


            console.log(num);




练习


获取输入框和span


        var input=document.querySelector('input');


        var span=document.querySelector('span');


        input.onblur=function(){


            var reg=/^[0-9A-Za-z_]{6,12}$/;


            var result=reg.test(input.value);


            if(result){


span.innerHTML='用户名格式正确';


            }else{


span.innerHTML='用户名格式错误,请重新输入';


            }


        }




身份证号正则


var wrt=prompt('请输入您的身份证号');


        var reg=/^\w{17}[0-9xX]$/;


        var result=reg.test(wrt);


        console.log(result);




手机号码正则


var wrt=prompt('请输入你的手机号');


        var reg=/^(0086|86)?\s*1[356789]\d{9}$/;


        var result=reg.test(wrt);


        console.log(result);


</script>

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容