正则表达式

正则表达式js中是一种对象

由以下代码:

rer.test(str)   验证字符串是否符合reg规则 str字符串中是否有rer正则表达式

str:字符串  rer:正则表达式

        var rer = /\./ //就是点
        var reg = /华清/
        var str = "夏至牛蛙666."
        var res = rer.test(str) //验证字符串是否符合reg规则 str字符串中是否有rer正则表达式
        console.log(res)

test函数的另一种用法:

new RegExp 创建正则对像

        var reg1 = new RegExp("夏至冬至")
        var str1 = "夏至冬至来来"
        var res = reg1.test(str1)
        console.log(res);

match匹配

由以下代码:

str2.match(reg2)  : str2为字符串   reg2为要在字符串中匹配的正则表达式  与test相反

/[a-c][a-c]/ig   表示取两个数 第一个a-c之间的数 第二个也是a-c之间的数 两个数要相邻  

i表示不用区分大小写  g表示不限数量

当reg2改成/a/ match会返回成数组  使用str.length打印a出现的次数


        var reg2 = /[a-c][a-c]/ig //取出两位 第一位是a到c之间的 第二位也是
        var str2 = "bcdeAfgAaa666"
        var arr = str2.match(reg2) //返回匹配到的第一个值 加了g返回多个
        console.log(arr);//bc Aa

判断是否以...开头或结尾

/^a/是否以a开头    /a$/是否以$结尾

用test函数判断

        var reg3 = /^a/i //a$是否以a结尾  ^a是否以a开头
        var str3 = "abcdeAfgAaa666A"
        var arr1 = reg3.test(str3)
        console.log(arr1);

查找以...结尾的:

/\.(jpg|png)$/  /.表示.   (jpg|png---jpg或者png   $---以..结尾

        var reg4 = /\.(jpg|png)$/ //查找以.jpg结尾 或者.png结尾的
        var str4 = "qabAcdefAg6acbb66a.jpg"
        var re = str4.match(reg4)
        console.log(re);

每个字符取一位

[赵千村][云鹤][abc]  每个括号里取一位 组合起来  

^[赵千村][云鹤][abc]以赵千村中的一个字开头的

        var reg5 = /[赵千村][云鹤][abc]/g //每个方括号分别取一位
        var str5="赵鹤a赵云bc村鹤a"
        var arr3=str5.match(reg5)
        console.log(arr3);//'赵鹤a', '赵云b', '村鹤a']

笔试题:去掉收尾空格

/(^\s+)|(\s+$)/g   \s表示空格 这里表示空格开头或者空格结尾的

re=str.replace(reg,"")  replace 替换   将str字符中的reg(开头的空格或结尾的空格) 替换成 ""

        // 笔试题去掉字符串的头尾空格
        // str.tirm()
        var reg=/(^\s+)|(\s+$)/g //去掉收尾空格
        var str=" abc  "
        var re=str.replace(reg,"")//把str中的空格去掉
        console.log(re);

/[a]+/   多个a

=/[a-b]+/   a和b连着出现出现多个都行

/a{3}/  三个连在一起的

手机号的正则

        var reg=/^1[3||5||7||8||9][0-9]{9}/ //1开头 35789为第二位  后面九个随机数

        var str="18623481834"

        console.log(reg.test(str))

exec函数

性质和match差不多直接返回和正则表达式相匹配的值  但是字符串的正则表达式的位置相反和test一样

第二次运行时会从上一次调用的值后面开始查找

        var reg=/[a-z]{3}[1-7]/ig
        var str="ABC3ccc9bbb6"
        var re=reg.test(str)
        console.log(re);
        var re2=reg.exec(str)//直接返回出来
        var re3=reg.exec(str)//第二次调用会从上一次调用的值的后面开始查找
        console.log(re2);
        console.log(re3);

克隆正则表达式

reg.source表示reg中的字符串

var reg2=new RegExp(reg.source)
        var str="helloabc"
        var count=0
        var temp=0
        while(str.indexOf("lo",temp)!=-1){//返回首次出现的位置从temp=0开始 如果不等于-1继续
                    count++
                    temp=str.indexOf("lo",temp)+1
        } 
        console.log(count);

返回首次出现的位置

re=str.indexOf("lo")

判断重复次数

str.indexOf("lo",temp)!=-1 表示结果不等于-1就继续 意为 匹配到了lo继续  没匹配到表示已经检索完了返回-1  while结束 

temp=0表示从0下标开始检测lo出现的位置

每次循环temp都等于上次匹配到的位置+1

count为计数器  匹配到的数量

        var str="helloabc"
        var count=0
        var temp=0
        while(str.indexOf("lo",temp)!=-1){//返回首次出现的位置从temp=0开始 如果不等于-1继续
                    count++
                    temp=str.indexOf("lo",temp)+1
        } 
        console.log(count);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值