正则表达式
// 元子符:再正则里有特殊含义的字符;
// var str = "abdfsafd";
// var reg = /ab/
// 1. "." 代表非换行符的其他字符
// alert("dfafd\nsaf");
// var str = "\n";
// var reg = /./;
// var res = reg.test(str);
// console.log(res);
// 2. \ 转义字符 转义 : 把有功能的特殊符号转成没有功能;
// var str = "fds\"fda";
// console.log(str);
// var str = "fdsf.das";
// // 想查找字符串里有没有.
// var reg = /\./;
// var res = reg.test(str);
// console.log(res);
// 3.\s 代表空格 \s 是一个整体 空格
// var str = "fds afda";
// var reg = /\s/;
// console.log( reg.test(str));
// 4.\S 匹配非空格
// var str = "k";
// var reg = /\S/;
// console.log( reg.test(str));
// 5. \d 匹配数字
// var str = "fdsafdsa";
// var reg = /\d/;
// console.log( reg.test(str));
// 6、\D 非数字
// var str = "fds";
// var reg = /\D/;
// console.log( reg.test(str));
// 7 \w : 数字、字母、下划线
// var str = "fdfdas";
// var reg = /\w/;
// console.log( reg.test(str));
// 8 \W 非数字字母 下划线;
// 限定符 : 正则里限定出现次数的符号
// var str = "dfsfsdaaaa";
//一、+ 符号: 1次 到多次 + 号 代表 匹配字符 1次到多次
// var reg = /a+/;
// var res = reg.test(str);
// console.log(res);
// 二 、* 0次到多次 <div></div>
// var str = "dfsfbdsfds";
// var reg = /a*/;
// console.log( reg.test(str));
// 三 ? : 出现0次到一次 ?
// var str = "dfaaadsfdfd";
// var reg = /(af)?/;
// console.log( reg.test(str));
// 四、指定字符出现次数 1.{n} : 字符只能出现n次 2.{n,m}字符出现n到m次 3.{n,}字符出现n次到无穷次
// var str = "fgsgaaads";
// var reg = /a{2}/;
// var res = reg.test(str);
// console.log(res);
// var str = "bcdefg";
// var reg = /a{1,2}/;
// var res = reg.test(str);
// console.log(res);
// + 等同于 {1,} * 等同于 {0,}; ? 等同于 {0,1};
// var str = 'fdsfds';
// var reg = /a{1,}/;
// var res = reg.test(str);
// console.log(res);
// 边界符号 :限定边界 的特殊符号 ^ $ \b
// 一 ^ :以什么作为开头
// var str = "adfsafdas";
// var reg = /^a/; //匹配 字符必须是以a作为开头的
// console.log( reg.test(str));
// 二 $ : 以什么作为结尾
// var str = "fdafadsa";
// var reg = /a$/;
// console.log( reg.test(str));
// 三、\b 匹配 非\w(数字、字母、下划线) 的内容 的边界
// className = "acitve box "
// var str = "this is a book";
// var reg = /\bis\b/;
// console.log( reg.test(str));
// var str = "a";
// var reg = /^a?$/;
// console.log( reg.test(str));
// 正则里的 () [] |
// 一、分组 (); 把多个匹配分成一组 ;
// var str = "fabcabccdsfddsf";
// // 中间 只会匹配最后一个字符出现多次
// var reg = /(abc){2}/;
// console.log( reg.test(str) );
// 分组补充 :获取 分组里匹配到的内容 会根据分组来编号 分别是 $1 $2 $3 ....
// var str = "fdafd32432dfafds";
// var reg = /(\d+)(\w+)/;
// var res = reg.test(str);
// console.log(res);
// console.log(RegExp.$1)
// console.log(RegExp.$2)
//二、 [] :集合 集合里面是或者关系 整个集合会代表一个字符
// var str = "this knife is 5km"; //匹配单位 km cm dm 都可以
// var reg = /\d[kcd]m/;
// console.log( reg.test(str));
// 集合补充 1.集合匹配一段 2. 集合取反
// [0-9] : 匹配一个字符 字符只能是 0-9之间的数字
// [a-z] : 匹配一个字符 字符是从 a-z 之间 字符
// [A-Z] : 匹配一个字符 字符是从 A-Z 之间 字符
// \w (数字 字母 下划线) ---等同于-> 改成集合 [0-9a-zA-Z_];
// \d 数字 等同于 [0-9]
// var str = "fdafddaf";
// var reg = /\d+/;
// var reg = /[0-9]+/
// console.log( reg.test(str));
// 注意:集合取反 ^ 要和集合之外的 ^ 区分开
// var str = "aaaaa_";
// var reg = /[^a]/ //除了 a以外的任意字符 ;
// console.log( reg.test(str));
//三、 正则里 |:或者
// var str = "fdsfdas";
// var reg = /(ab)|(cd)/;
// console.log( reg.test(str));