正则中的API

一、String中的正则API


1.search();判断是否包含符合规定的关键词   

//如果找到返回关键词的位置,如果找不到返回-1

   var str='you can you up';

   //var strs=str.search(/you/);//返回关键词的位置

var strs=str.search(/uoy/);//找不到返回-1

        console.log(strs);


缺点:

1.search只能找第一个关键词出现的位置

  2.search只能获得位置,不能获得内容


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

返回一个包含关键词的数组

如果没有找到返回null

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

         var strs=str.match(/d/g);

        console.log(strs);

注:所有正则表达式默认只匹配一个关键词,若要匹配所有要在第二个/后面加g,若要忽略大小写要在第二个/后面加i

缺点:

无法获取每个关键词的位置


g:表示查找全部,不写仅查找一个

i:表示忽略大小写。不写,区分大小写



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

                   var str='no zuo no die';

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

              console.log(strs);


5.split(/正则/);切割  //切割完返回一个数组

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

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

                   console.log(strs);

正则

一位数字\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);

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

推荐阅读更多精彩内容