正则表达式
//正则默认:匹配成功就会结束匹配 (如果想全部查找加标识 g),不区分大小写 (如果想区分大小写 加标识 i)
//1.test : 正则去匹配字符串,如果匹配成功返回真,匹配失败返回假; 正则.test(字符串)
//2.search : 正则去匹配字符串,如果匹配成功就返回匹配位置,否则就返回 -1; 字符串.search(正则)
//3.match : 正则去匹配字符串,如果匹配成功就返回匹配的数组,否则返回null; 字符串.match(正则)
//4.replace : 正则去匹配字符串,匹配成功的字符去替换成新的字符串; 字符串.replace(正则,新的字符串),
//第二个字符串也可以是个函数,函数的第一个参数就是匹配成功的字符
//----------------------------------------------------------------------------------
//匹配子项 : 小括号 () 还有另外一个意思分组操作
//把正则的整体叫做母亲,然后把左边第一个括号里面的正则叫做第一个子项,以此类推
var str = '2019-5-15';
var reg = /(\d+)(-)/g;
str = str.replace(reg,function($0,$1){
//第一个参数是母亲,第二个参数是第一个子项
console.log($0); //2019- 5-
console.log($1); //2019 5
return $1 + '.';
})
console.log(str); //2019.5.15
var str = 'abc';
var reg = /(a)(b)(c)/;
console.log(str.match(reg)); //[abc,a,b,c] 当match不加g的时候才会匹配到子项的集合
//-------------------------------------------------------------------------------------
//字符类 : 一组相似的元素 [] 中括号的整体代表一个字符
var str = 'abdc';
var re = /a[bde]c/;
alert( re.test(str) ); //false
//排除 : ^ 如果 ^ 写在 [] 里面的话 就代表排除的意思
//--------------------------------------------------------------------------------------
//转义字符
// . : 任意字符
// \. : 真正的点
// \b : 独立的部分 (起始,结束,空格)
// \B : 非独立的部分
// \1 : 重复的第一个子项
// \2 : 重复的第二个子项
var reg = /\w\W/ ; //可以匹配 c9 ,只要是俩个字符都可以
var reg = /\w\1/; //只能匹配俩个相同的; aa