js中的正则

| : 或的意思 ,意味着你想匹配的关键词为多个,并且都是你想要的
如:
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 : 非独立的部分

var str = 'onetwo';

var re = /one/;

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 = /ww/; c9
var re = /(w)1/; cc 99
 
 
 
 
 
 
 
原文地址:https://www.cnblogs.com/zjpzjp/p/7486336.html