| : 或的意思 ,意味着你想匹配的关键词为多个,并且都是你想要的
如:
var str= ‘菲称仁爱礁附近17艘中国船均在菲军监视之下‘
var re = /菲称|中国船|监视之下/g;
str.replace(re,function(str){}
**仁爱礁附近17艘***均在菲军****
//匹配子项 : 小括号 () (还有另外一个意思,分组操作)
//1+1*2
//(1+1)*2
//把正则的整体叫做(母亲)
//然后把左边第一个小括号里面的正则,叫做这个第一个子项(母亲的第一个孩子)
//第二个小括号就是第二个孩子
var str = ‘2013-6-7‘;
var re = /(\d+)(-)/g;
str = str.replace(re,function($0,$1,$2){
//第一个参数:$0(母亲),第二个参数 : $1(第一个孩子)
//,第二个参数 : $1(第二个孩子)
alert( $0 );
// alert( $1 );
// alert( $2 );
//return $1 + ‘.‘;
return $0.substring(0,$0.length-1) + ‘.‘;
});
第一次alter 弹出 “2013-“ 第二次弹出“6-” 其中第一次的$1为2013 $2为- 第二次的$1为6 $2为- 这才是匹配子项的含意
var str = ‘abc‘;
var re = /(a)(b)(c)/;
alert( str.match(re) ); //[abc,a,b,c](当match不加g的时候才可以获取到子项的集合)
var kwords=str.match(reg);
1. reg不加g,match也只找第一个
何时使用: 希望获得第一个关键词的内容和位置时
返回值: 数组,其中包含找到的关键词内容
kwords:["关键词"]
kwords.index->关键词的位置 如果没找到,返回null!
2. reg加g,match会找到所有关键词的内容
何时使用: 希望获得所有关键词的内容时
返回值: 数组,包含了所有关键词的内容
数组的length属性,记录了所有关键词个数
缺点: 只能找到所有关键词的内容,无法找到每个关键词的位置。
强调: 只要使用match,都可能返回null,都要先判断不是null,再执行后续操作!
//. : 任意字符
//\. : 真正的点
/*var str = ‘a.c‘;
var re = /a\.c/;
alert(re.test(str));*/
//\b : 独立的部分 ( 起始,结束,空格 )
//\B : 非独立的部分
var str = ‘onetwo‘;
var re = /one\b/;
alert( re.test(str) );
//var re = /sClass/; //当正则需要传参的时候,一定要用全称的写法
var re = new RegExp(‘\\b‘+sClass+‘\\b‘); 注意全称的写法 需要转义一下
//\1 : 重复的第一个子项
//\2 : 重复的第二个子项
/*var str = ‘abca‘;
var re = /(a)(b)(c)\2/;
alert( re.test(str) );*/
/*var re = /\w\w/; c9
var re = /(\w)\1/; cc 99