JavaScript⑨正则和正则的API

2018-05-29  本文已影响0人  我真的是易晓辉

一、正则

(1)预定义字符集

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

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

一位空格tab键   \s

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

有明确数量限制

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

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

{m}表示必须出现m次

没有明确限制

?可有可无  最多一次

*可有可无  多了不限

+至少一次  最多一次

(3)分组或选择

( )表示分组

|表示或者

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

案例:

(1)获取输入框和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='用户名格式错误,请重新输入';

            }

        }

(2)身份证号正则

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

获得焦点事件:onfocu

上一篇下一篇

猜你喜欢

热点阅读