正则表达式

正则表达式

    正则表达式:

       正则表达式,是能够表示一定规则的表达式 –>

    作用:

       表单验证.....

    创建一个正则表达式:

       用构造函数RegExp的方法创建一个正则表达式圆括号内有两个值

           var   box = new RegExp(正则内容,修正符);

                     在圆括号内正则内容和修正符都要加引号

       第二种字面量创建:

           var   box2 = /正则内容/修正符;

    正则表达式的使用方法:

       RegExp方法:

         正则对象.test||exec(字符串)

           test   执行字符串匹配搜索,  返回true或false

           exec   执行字符串匹配搜索,返回结果数组若没有相关信息返回null            

                  若查找到结果,则可以用数组方法访问查找到的元素

                  也可以用.index方法访问查找到第一个的位置,

                  也可以用.input方法访问被查找的字符串。

       string 方法:

         字符串.方法名(正则对象)

           match   返回正则内容匹配到的子串

                   此方法,会获取到要匹配的子串,返回一个数组,

                   此方法若不开全局跟exec一样。

                   例如:

                      var str ='Hello world! Hello world! Hello world! Hello world!';//这个就是要去匹配的内容

                     var box2=/world/ig;  //正则规则和修正符

                     //使用字符串方法  match方法去匹配需要配的字符串,并返回出结果

                     var box3= str.match(box2);  //匹配到["world", "world", "world", "world"]

                     console.log(box3);

           search  返回正则内容匹配到的子串的起始位置(下标),全局g在这不起作用

                  若没找到,返回-1。

           例子:

                  varbox3 =str.search(box2);

           replace 用来替换匹配到的正则规则内的内容,并返回出匹配的字符串,(正则规则,‘这里是要替换东西,此处要引号,若引号内为空,则删除掉替换的东西’)

           例子:

                  var str = 'Hello World! Hello world! Hello world! Hello world!';//这个就是要去匹配的内容

                  var box2 = /world/ig;  //正则规则和修正符

                  var box3 = str.replace(box2,'box'); 

                    //Hello box! Hello box! Hello box! Hello box!

                  console.log(box3);

    split  用来拆分字符串,按照正则匹配到的东西来拆分

           例子:

                  var str = 'Hello World!@Hello world! Hello world! Hello world!';//这个就是要去匹配的内容

                  var box2 = /##/ig;  //正则规则和修正符

                  //用来分割字符串

                  //此例子,是将空格拆分组成数组

                  var box3 = str.split(box2);//["Hello", "World!@Hello", "world!", "Hello", "world!", "Hello", "world!"]

                  console.log(box3);

    正则内容修正符:

           i      忽略大小写

           g       全局匹配

           m       多行匹配

       空白字符:

           \n         换行符

           \r         回车符

           \b         空格符

       元字符:

           \    转义符

           .   匹配除 "\n" 之外的任何单个字符。

           *    匹配0个或多个位数星号前面的字符

           []   匹配一个字符集合,中括号内是一个集合,但是这个只占一位,括号内可以放任何东西

           [^a-z0-9]     表示给括号内的内容取非值

           ^   表示字符串开始的位置必须是^后面的一个字符

           $     表示字符串结束位置必须是$前面的一个字符

           +     匹配前面的一个字符一次或多次

           ?      匹配前面的一个字符零次或1次

          {n}  匹配前面的一个字符出现的次数,n表示次数

          {n,}  匹配前面的一个字符出现至少多少次

          {n,m} 匹配前面的一个字符出现的次数,n表示最小次数,m表示最大次数,m,n取值为非负整数

          x|y  匹配x或y

          ()     1.改变优先级,一般配合|使用

                 2.将()内的内容,存储到数组中------exec使用---捕获分组

                     若不要捕获的内容,(?:)在圆括号的开始位置加上?:

                 3.()方式称为单元方式

                 //下面为前瞻捕获捕获

                 var str = 'google';

                 var box = /(goo(?=gle))/;    捕获的结果为goo,但是匹配规则是google

              原子:

                     \d    表示数字0-9等价于 [0-9]

                     \D   表示除了0-9以外的字符,等价于[^0-9]

                     \s    表示匹配任何空白字符,包括空格、制表符、换页符等等。等价于[\f\n\r\t\v]

                     \S    匹配任何非空白字符。等价于[^\f\n\r\t\v]

                     \w   匹配包括下划线的任何单词字符。等价于'[A-Za-z0-9_]'。     

                     \W 匹配任何非单词字符。等价于 '[^A-Za-z0-9_]'。

      

贪婪

非惰性

+

+?

??

*

*?

{n,}

{n,}?

{n,m}

{n,m}?

Ps:个人的一点学习笔记,如有不足或错误请指出,一定及时纠正。

posted on 2016-12-30 19:27  Ace呼噜鳄  阅读(224)  评论(0编辑  收藏  举报

导航