正则表达式(RegExp)

作用:匹配特殊字符或有特殊搭配原则的字符的最佳选择

 

创建方法

一        var reg=/abc/;           正则表达式的表示方法 //中间放东西

            var str="abcd";

           reg.test(str)     .test是一种方法,用来测试str里有没有reg中的片段

二  var reg=new RegExp("abs","放属性")

 var reg=/abc/; 

 var reg1=new RegExp(reg);     表示复制过来,两个长的一样的正则表达式

特殊情况

 var reg1= RegExp(reg);      表示的是引用,两个指的是同一地址

三个属性

var reg=/abc/i;         忽视大小写

 var reg=/abc/g;     全局匹配    str.match(reg);

                                                表示再str中找reg一样的

                                                /^a/表示找开头的a

var reg=/abc/m;       执行多行匹配

     实例    var reg=/^a/gm;

                 var str="abcde\na";    此时可以匹配出两个a,如果没有m属性,则只能匹配出一个a

 reg.test();判断,返回结果没true或者false

str.match();匹配出来反馈出来

表达式

var reg=/[012345][12345][12367]/g;

        [0-9A-z]范围在0-9,a-z,A-Z

                        表示在字符串中找[]范围里的 

^放到表达式里外是不一样的

[^A]表示非A

var reg=/(abc|bcd)/g;     表示要匹配abc或者bcd

元字符

.     相当于[^\r\n]  非换行和行结束符

\w   相当于[0-9A-z]

\W  相当于[^\w]   正好相反

\d相当于[0-9]

\D相当于[^\d]

\s  空白字符     相当于[\t\n\r\v\f]加上空格

\S相当于[^\s]

\n换行符

\f换页符

\r回车符

\t制表符

\v垂直制表符

\b单词边界

\B非单词边界

\u          unicode编码==asc编码  

第一层到第十六(十六进制,因此10表示16)层unicode编码(常用第一层,因此可省01)

\u010000  --  \u01ffff

\u020000  --  \u02ffff

\u100000  --  \u10ffff

 

 正向预查    (?=n)  找后面紧跟n的字符,n不获取出来,只负责预查 

非正向预查  (?!n)

 

 reg.exec();  随游标移动进行匹配

reg.lastIndex   表示游标的位置

            如果没有属性g,lastIndex一直为0

            加上g,lastIndex才当游标用

var str="aa";

str.replace("a","b");       表示把a换成b    不过只换一个,变成ba

解决方法

var reg=/a/g;

var str="aa";

str.replace(reg,"b"); 

把AABB倒过来,变成BBAA

var reg=/(\w)\1(\w)\2/g;

var str="aabb";

str.replace(reg,"$2$2$1$1"); 

或者 

 str.toUpperCase()变成大写,字符串

str.toLowerCase()变成小写

变小驼峰式写法

变成科学计数法 

子表达式

找出AABB型

var reg=/(\w)\1(\w)\2/g; 

var reg=/(a)\1/g;

       第一个()为第一个子表达式,   \1表示反向引用第一个子表达式里的内容

var reg=/(\w)\1\1\1\1/g;      三次引用第一个子表达式里的内容

贪婪匹配和非贪婪匹配

var str="aaaaa";

var reg=/a+/g;             此时会匹配出aaaaa,此为贪婪匹配

在任何量词后面加?则变成非贪婪匹配

var str="aaaaa";

var reg=/a{1,3}?/g ;             能匹配一个则不会匹配三个

var str="aaaaa";

var reg=/a??/g ;         第一个?代表量词(0-1),第二个?表示取消贪婪匹配,取零个

var str="aaaaa";

var reg=/a*?/g ;     表示取零个

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Nuo__

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值