JS的正则表达式

 //1.什么是正则?

        //用于匹配有'规律'的字符串

        //2.常用的正则方法有2个

        //  test()  返回true和false

        //  exec()  返回数组和null

        //3.支持正则的字符串方法有4个

        //  match()

        //  search()

        //  split()

        //  replace()

        //4.正则的创建方式

        //1)正则的字面量表达方式

        var reg = / /igm

        //i:忽略大小写 ignore -->ig no re

        //g:全局    global

        //m:换行

        console.log(typeof reg);//object

        //2.)正则构造函数

        var reg = new RegExp('匹配的字符', '修饰')

        var str = 'abc123'

        var reg = /c/

        //正则对象的2个方法

        console.log(reg.text(str));

        console.log(reg.exec(str));

        //字符串的4个方法

        console.log(str.match(reg));//与exec相似(找到返回数组,找不到返回null)

        console.log(str.search(reg));

        console.log(str.split(reg));

        console.log(str.replace(reg, '-'));

        //5 . 和  *

        //  .任意字符

        //  *任意次数 0~n

        //  .*任意字符出现任意次数

        var str = 'this is a bx'

        var reg = /t.*gi/

        console.log(reg.test(str));

        //6 .

        var str = 'google'

        var reg = /g..gle/

        console.log(reg.test(str));

        //7.[]  一个位置的取值范围

        //[a-z] a到z

        //[az]  a或z

        var str = 'google'

        var reg = /g[a-z][a-z]/

        console.log(reg.test(str));

        //8.  + 表示是1次以上

        var str = 'google'

        var reg = /g[a-z]+gle/

        console.log(reg.test(str));

        //9.    [^a-z]  不是a-z

        var str = 'google'

        var reg = /g[^0~9]+gle/

        console.log(reg.test(str));

        //10.\w 等价于[a-zA-Z0~9_]

        //11.\W 等价于[^a-zA-Z0~9_]

        var reg = /g\W+gle/

        var str = 'g!gle'

        console.log(reg.test(str));

        //12.\d [0~9]

        var str = '19973125898'

        var reg = /[1][3-9]\d{9}/     //用正则匹配电话号码

        console.log(reg.test(str));

        //13.\D [^0~9]

        var str = 'google'

        var reg = /g\D+gle/

        console.log(reg.test(str));

        //14.   {}

        //  {n}固定次数

        var str = '19973125898'

        var reg = /[1][3-9]\d{9}/     //用正则匹配电话号码

        console.log(reg.test(str));

        //  {n,}最少n次,最多不限

        var str = ''

        var reg = /\d{5,}/

        //  {n,m}最少n次,最多m次

        var str = ''

        var reg = /\d{5,12}/

        console.log(reg.test(str));

        //15.   ^   $

        //  限制边界

        var reg = /^\d{6}$/

        var str = '123456'

        console.log(reg.test(str));

        //16.   \s 空白

        var reg = /google\s\d{4}/

        var str = 'google 1234'

        console.log(reg.test(str));

        //17.   \S  非空白

        var reg = /google\S\d{4}/

        var str = 'goole`1234'

        console.log(reg.test(str));

正则的判断

//  js的或 || , 正则的或  |

        var pattern = /google|baidu|bing/; //匹配三个中的其中一个字符串

        var str = 'googl2e bai3du;bing1'

        console.log(pattern.test(str)); //true

        //  分组模式匹配:()

        var str = '我爱前端我爱前端我爱前端'

        var reg = /(我爱前端){3}/

        console.log(reg.test(str));

        //  获取8..8之间的任意字符

        var pattern = /8(.*)8/

        var str = 'this is 8google8 baab 8ggg8'

        console.log(str.match(pattern));

        console.log(RegExp.$1); //"google8 baab 8ggg"

        var reg = /^([a-z]+)\s([0-9]{4})$/i

        var str = 'google 2016'

        console.log(reg.exec(str));

        console.log(RegExp.$1);//google

        console.log(RegExp.$2);//2016

        //非捕获    ?:(理解为不包括)

        var reg = /^(?:[a-z]+)\s(?:[0-9]{4})$/i

        var str = 'google 2016'

        console.log(reg.exec(str));

        console.log(RegExp.$1);//不显示

        console.log(RegExp.$2);//不显示

        //转义  \

        // var str = ".[]";

        // var reg = /\.\[]/;

        // console.log(reg);

        // console.log(reg.test(str));

        var str = '\w'

        var reg = /\w/

        console.log(reg.test(str));

        var str = "1,baidu98\n2,google99\n3,bing100";

        var reg = /^\d/gm;

        console.log(str.replace(reg, "#"));

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值