字符模板
* 0 次到多次
+ 1 次到多次
? {0,1} 零次到一次
- var str="0abcde0123";
- var reg1 = new RegExp('0', 'g');
- // 等价于
- var reg2 = /0/g;
- // 正则. test(字符串) , 若查找到返回 true, 反之返回 false.
- console.log(reg1.test(str)); //true
- console.log(reg2.test(str)); //true
- // 字符串. match(正则) 成功就返回匹配到的内容 (正则), 都是字符串的方法
- console.log(str.match(reg1)); //["0", "0"]
- console.log(str.match(reg2)); //["0", "0"]
- // 字符串. replace(正则, 新的字符串 / 回调函数)(在回调函数中, 第一个参数指的是每次匹配成功的字符)
- console.log(str.replace(reg1,"k")); //kabcdek123
- // 匹配到一次就执行一次回调
- var len=0;
- var newstr=str.replace(/[123456789]/g,function(a){
- if(a<3){
- len+=1;
- }
- });
- console.log(len); //2
- //search() : 在字符串搜索符合正则的内容, 搜索到就返回第一次出现的位置
- // 字符串. search(正则)
- console.log(str.search(/[123456789]/g));// 7(1 的下标为 7) 找到一个就不会继续找了 (g 没有作用) 找不到返回 - 1
- console.log(str.search(/[qw]/g));//-1 找不到返回 - 1
- // 没有 gg 的情况下
- var s1="12aabbcc3";
- var r1=/[123]/;
- // 返回一个数组 这个数组有一些特殊的属性
- console.log(r1.exec(s1));//["1", index: 0, input: "12aabbcc3", groups: undefined]
- console.log(r1.exec(s1));//["1", index: 0, input: "12aabbcc3", groups: undefined]
- console.log(r1.exec(s1).length);//1
- console.log(r1.exec(s1)[0]);//1
- console.log(r1.exec(s1).index);//0
- console.log(r1.exec(s1).input);//12aabbcc3
- console.log(Array.isArray([]));//true 是数组
- console.log(Array.isArray(r1.exec(s1)));//true 是数组
- // 有 gg 的情况下
- var s2="12aabbcc3";
- var r2=/[123]/g;
- console.log(r2.exec(s2));//["1", index: 0, input: "12aabbcc3", groups: undefined]
- // 有 g 的情况下 第二次 exec 是在第一次 exec 的基础之上执行的 (从第一次找到的那个之后开始找)
- console.log(r2.exec(s2));//["2", index: 1, input: "12aabbcc3", groups: undefined]
- // 有 gg 的情况下
- var s3="12aabbcabc3";
- var r3=/(a)(b)/g;
- console.log(r3.exec(s3));//["1", index: 0, input: "12aabbcc3", groups: undefined]
- // 有 g 的情况下 第二次 exec 是在第一次 exec 的基础之上执行的 (从第一次找到的那个之后开始找)
- console.log(r3.exec(s3));//["2", index: 1, input: "12aabbcc3", groups: undefined]
c_正则
来源: http://www.bubuko.com/infodetail-3262778.html