javaScript正则表达式

  1、web

      什么是正则表达式:官方的解释是:正则是匹配字符串特定模式的一种表达式。换句话就是正则表达式就是用来匹配字符串的。正则表达式

2、建立正则表达式的方式:数组

    一、方式一:app

var box = new RegExp("no pain no gain","igm");

在方式一中的参数而是能够省略的。其中,i表示忽略大小写,默认是区分大小写的。g是表明全局匹配(后面详细说明),m表示多行匹配.三个参数能够单独使用也能够一块儿使用函数

    二、方式二:测试

var box =/you are the best/igm;

3、测试正则表达式的函数:google

   一、RegExp包含两个函数test()和exec()。test()返回true或false,而exec()返回匹配到的数组spa

    1.一、test()code

  var pattern = new RegExp("This is box","ig");//建立正则表达式忽略大小写,全局匹配
    var str = "box";
   alert( pattern.test(str));//返回true

   1.二、exec()orm

  var pattern = /This is box/ig;//建立正则表达式忽略大小写,全局匹配
   var str = "box";
  var a = pattern.exec(str);//返回数组

   alert(a[0]);//打印出box

二、除lRegExp提供了test()和exec()两种测试正则表达式的方法String也提供了测试正则表达式的方法,match(pattern),replace(pattern,repalcement),search(pattern),split(pattern)

2.一、match(pattern)返回pattern中的子串或则null

var pattern = /This is a box,This is a cat/ig
var str = "This";
var a = str.match(pattern);
alert(a.length);//打印出2
alter(a[0]);//打印出This

若是将上面的的例子改为一下形式(把g去掉)

 

var pattern = /This is a box,This is a cat/i
var str = "This";
var a = str.match(pattern);
alert(a.length);//打印出1
alter(a[0]);//打印出This

 

var pattern = /This is a box,This is a cat/
var str = "This";
var a = str.match(pattern);
alert(a.length);//打印出0
alter(a[0]);//打印出undefind

2.二、replace(pattern,str1);用str1替换

var pattern = /This is a box,This is a cat/i
var str = "This";
str.replacee(pattern,"That");
alter(pattern );//输出That is a box,This is a cat

var pattern = /This is a box,This is a cat/ig
var str = "a";
var a = str.search(pattern);

alert(a);//返回8

2.四、split(pattern)//返回分割后的数组

var pattern = /a/ig
var str = "This is a box,This is a cat";
var a = str.split(pattern);
alert(a.length);//打印出3

 

 4、获取控制

一、

1.一、[a-z0-9]匹配括号中字符的任意一个

1.二、. 匹配任意一个字符

1.三、[^a-z0-9]匹配不在括号中的字符的任意一个

1.四、\d匹配数字[0-9]

1.五、\D匹配非数字[^0-9]

1.六、\w匹配数字,字母及下划线

1.七、\W匹配非数字字母及下划线

1.八、\0匹配null,\b匹配空格字符,\n匹配换行,\r匹配回车,\s匹配空白字符,空格,制表符,换行符 \S匹配非空白字符

1.九、^行首匹配,$行尾匹配,

1.十、x?匹配x0次或1次,x*匹配x任意次,x+匹配x1次或屡次,(xyz)+匹配xyz一次或屡次,x{n,m}匹配xn到m次

1.十一、|herro|where|why匹配herro,where,why中的任意一个

1.十二、\1或者$1匹配第一个分组的内容   ,   \2或者$2匹配第二个分组的内容       ,\3或者$3匹配第三个分组的内容  

二、

2.一、前瞻性捕获

var pattern = (goo(?=gle));//goo后面必须跟着gle才捕获
var str= google;
alert(pattern.exec(str));

2.二、捕获性分组:指的是RegExp.$1这个属性的值

 var str = "This is box ,This is apple";
 var reg = /(This ){1}(p){2}/gi;
 reg.test(str); // 要必须匹配以后才有下面的值
 alert(RegExp.$1); //output "This"
 alert(RegExp.$2); //output "pp"

非捕获分组模式:上面说了捕获分组,那非捕获分组其实就是不让RegExp.$1引用了

 var str = "#123456789";
 var reg = /#(?:\d+)/;
 reg.test(str);
 alert(RegExp.$1);      //output "" 注意这里取消了反向引用就为空了
相关文章
相关标签/搜索