日期:2014-05-16  浏览次数:20360 次

Javascript正则表达式笔记

^ ? ??? The caret (^) tells the regular expression that the character must not match the characters to follow.
??????? 比如要匹配所有除了a或b的字符,字符类可以这么写[^ab]
^ ???? 定位符规定匹配模式必须出现在目标字符串的开头
??????? 那是否说^ [ ] 里面 就 表示排除(负向类) , 在[ ] 前面 就表示要在开头 ?
$ ???? 定位符规定匹配模式必须出现在目标对象的结尾

- ?????? 范围类,如要匹配a到z的所有字母,字符类可以这么写[a-z]

{n} ? 出现多少次

/^[0-9]{7}$/ ?? 匹配的就是一个仅包含7个数字的字符串


7.1 RegExp 对象可以有一个或两个参数.
????? var reCat = new RegExp ("cat")? ??????????????????? //这个表达式只会匹配字符串中出现的第一个"cat"
????? var reCat = new RegExp ("cat","g") ????????????? //匹配所有出现的"cat"

???? 正则表达式字面量
???? var reCat = /cat/gi ; ? 注意字面量不需 要放在引号里

???? 判断某个字符串是否匹配指定的模式
???? RegExp.test(str) ??? ????????????? 如果给定的字符串匹配这个模式,返回true ,否则返回false .?? reCat.test("cat") ? //返回true

???? RegExp. exec(str) ? ????????????? 返回一个数组 ,数组中第一个元素是匹配字符串,其他是反向引用 . 如果没有找到匹配,返回null
?????????????????????????????????????????????? 返回的数组有一个index 属性,这个属性的值 是匹配字符串中第一个字符在原字符串中的下标
????????????????????????????????????????????? var toMarch6 = "1 3";
??? ?????????????????? var regExp6 = /(\d+)\s*(\d+)/;
??? ?????????????????? var result = regExp6.exec(toMarch6);
??? ?????????????????? dwr(result);//1 3,1,3
????????????????????????????????????????????? dwr(RegExp.$1 +" "+RegExp.$2);//1 3
????????????????????????????????????????????? 当正则表达式加上了参数g ,这个正则表达式会从正则表达式对象的lastIndex 属 性指定的位置开始查找,如果找到一个匹配,
????????????????????????????????????????????? 会将lastIndex 属性设置为匹配字符串后面 一个位置的下标.
?????????????????????? var toMarch7 = "1 3 4 5";
??? ?????????????????? var regExp7 = /(\d+)\s*(\d+)/g;
??? ?????????????????? var result7
??? ?????????????????? while((result7= regExp7.ex