replace方法和RegExp结合使用
var str = "L.Rain";
var regExpTest = '' ;
regExpTest = str.replace(/[R|n]/g , "*");
var regExp = new RegExp("[R|n]","gi") ;
regExpTest = str.replace(regExp,'*') ;
//上面两种方式的效果一样
RegExp对象的构造函数可以带一个或两个参数,
第一个参数是描述需要进行匹配的模式字符串,如果有第二个参数,这个参数则指定了额外的处理指令。
最基本的正则表达式就是普通的字符串
g :
var reCat = new RegExp("cat");
var reCat = /cat/;
var reCat = new RegExp("cat","g");
//第一和第二种 只拼配第一次的cat
//第三种 则匹配所有的cat
第二个参数表示要搜索字符串出现的全部的"cat",而不是找到第一个匹配后就停止。
如果还要模式不区分大小写,可以给第二个参数添加字符
i :
var reCat = new RegExp("cat","gi");
var reCat = /cat/gi;
测试:
var sToMatch = "cat";
var reCat = /cat/gi;
alert( reCat.test(sToMatch) );
RegExp对象涉及的方法:
RegExp.exec():访问模式的每一次出现
var sToMatch = "a bat , a Cat , a fAt ,a baT , a faT cat";
var reAt = /at/;
var arrMatches = reAt.exec(sToMatch);
alert(arrMatches.length); // output 1
RegExp.test():方法用于检测一个字符串是否匹配某个模式
常用于判断是否符合正则表达式
返回true 或 false
var str = "ExpTest";
var patt1 = new RegExp("ExpTest");
var result = patt1.test(str);
alert(result);//返回true 说明匹配到
String.match():String 对象的 match() 方法
var sToMatch = "a bat , a Cat , a fAt ,a baT , a faT cat";
var reAt = /at/gi;
var arrMatches = sToMatch.match(reAt);
alert( arrMatches.length ); // output 6
String.search():此方法与 indexOf()方法类似,
但是它使用的是一个RegExp对象,而并非一个字符串,
返回的是字符串中一个匹配的位置。
(g)全局匹配在此方法不起作用。
String.replace():可以用另外一个字符串(第二个参数) 来代替某一个字符串或者一个匹配的
模式字符串 (第一个参数)的所有匹配。
String.split():参数可以为一个字符串也可以为 一个匹配的模式字符串 RegExp对象。