JavaScript的正则表达式(一)

来源:互联网 发布:caffe model zoo 编辑:程序博客网 时间:2024/05/22 07:52

字符串的复习

indexOf        查找

substring      获取子字符串

charAt          获取某一个字符

split              拆分数组


正则:也就是规则 让计算机读懂人类的规则

正则是针对字符串的


正则写法 

var re = /a/

var re = new RegExp('a');


test:正则去匹配字符串,如果匹配成功就返回真,如果匹配失败就返回假

test的写法:正则.test(字符串)


转义字符:alert(a\nb)   //a和b换行

n \n  换行

r  \r  制表

t  \t  回车

\s  :空格

\S :非空格

\d  :数字

\D :非数字

\w  :字符(字母、数字、下划线_)

\W  :非字符


search:正则去匹配字符串,如果匹配成功,就返回匹配成功的位置,如果匹配失败就返回-1

search的写法:字符串.search(正则)


正则中的默认:是区分大小写的

如果不区分大小写,在正则的最后加标识 i

var str = '123s25d3f53';

var re = /S/i;                  var re = new RegExp('B',i);

alert(str.search(re));


match:正则去匹配字符串,如果匹配成功就返回匹配成功的数组,如果匹配不成功,就返回null

match的写法:字符串.match(正则);

正则默认:正则匹配成功就会结束,不会继续匹配

如果想全部查找,就要加标识g(全局匹配)

量词:匹配不确定的位置

+:至少出现一次

var str = "1s2f1114ss25frwe";//var re = /\d/         //[1];//var re = /\d/g        //[1,2,1,1,1,4,2,5];//var re = /\d\d/g      //[11,14,25];//var re = /\d\d\d/g    //[111];//var re = /\d+/g;      //[1,2,1114,25]alert(str.match(re));

replace: 正则去匹配字符串,匹配成功的字符去替换新的字符串

replace的写法:字符串.replace(正则,新的字符串)

var str = "c2sdcc";//var re = /c/;         //d2sdcc//var re = /c/g         //d2sddd//var re = /c+/g        //d2sddalert(str.replace(re,"d"));

正则中 | :或的意思

replace:可以是字符串,也还可以是一个回调函数

下面的案例就是过滤敏感词

var oBtn = document.getElementById('btn');var aText = document.getElementsByTagName('textarea');oBtn.onclick = function(){var re = /明白|厉害|智商/g;aText[1].value = aText[0].value.replace(re,function(str){      
                        //回调函数中 第一个参数代表母亲,第二个参数代表第一个孩子,第三个参数代表第二个孩子,以此类推
var str = 'abc'var re = /(a)(b)(c)/alert(str.match(re));  //abc,a,b,c  (当match不加的时候才可以获取到子项的集合)

var str = 'abc'var re = /(a)(b)(c)/alert(str.match(re));  //abc,a,b,c  (当match不加的时候才可以获取到子项的集合)

                                var str2 = ""; 
console.log(str);for(var i=0;i<str.length;i++){str2 += '*';}return str2;})}

匹配子项:小括号()(还有另外一个意思,分组操作)

把正则的整体叫做(母亲)

然后把左边第一个小括号里面的正则,叫做这个第一个子项

第二个小括号就是这个正则的第二个孩子

var str = "2017-07-11";//情况一// var re = /\d+-/g// str.replace(re,function(a){// alert(a);    //2017-  07-// })//情况二// var re = /\d-+/g  // str.replace(re,function(a){// alert(a);    //7-  7-// })//情况三// var re = /(\d-)+/g;// str.replace(re,function(a){// alert(a);   //7-  7-  // })//情况四// var re = /(\d+)(-)/g;// str.replace(re,function(a){// alert(a);   //2017-  07-  // })


var str = 'abc'var re = /(a)(b)(c)/alert(str.match(re));  //abc,a,b,c  (当match不加的时候才可以获取到子项的集合)





原创粉丝点击