粗见之正则表达式
概念:
正则:也叫做规则,让计算机读懂人类的规则;
正则都是操作字符串的;
写法:
简写:var re = //;
双斜杠会被浏览器默认为注释,所以在里面添加需要操作的元素,例:var re = /a/;
全称写法:var re = new RegExp(‘a’);
当正则需要传参的时候,一定要用全称的写法:
例参数为obj==>var re = new RegExp(obj)
方法:
1.test方法
概念:正则去匹配字符串,如果匹配成功则返回真,匹配失败则返回假
写法:正则.test(字符串)
2.search方法
概念:正则去匹配字符串,如果匹配成功则返回成功的位置,匹配失败则返回-1
写法:字符串.search(正则)
2.match方法
概念:正则去匹配字符串,如果匹配成功则返回成功的数组,匹配失败则返回null;
写法:字符串.match(正则);
2.replace方法
概念:正则去匹配字符串,匹配成功的字符替换成新的字符串;
写法:字符串.replace(正则,新的字符串)
第二个参数可以是字符串,也可以是一个回调函数:
字符串.replace(正则,fn( str ){})
函数的第一个参数str,就是匹配成功的字符,是主项,后面的若有参数则依次为第一子项,第二子项...
匹配子项:小括号(),(还有另外一个意思:分组操作)
概念:正则整体为主项,左边第一个小括号里面的正则为第一个子项
在不加全局匹配g的情况下,match除了输出主项,还会把所有的子项输出来
正则中的默认:
1.匹配是区分大小写的; 如果不区分大小写就在正则后面加标识i(不区分大小写)
2.匹配成功就会结束,不会继续匹配; 如果想全部查找,就加标识g(全局匹配)
标识的添加位置:
逻辑符号:
| :正则中的或
字符类:
概念:一组相似的元素 []:中括号的整体代表一个字符,里面的元素是或的关系;
例:var re = /a[bcd]e/ ==> re = /abe/ || re = /ace/ || re = /ade/
排除:^ ^如果写在[]里面的话,代表排除的意思
范围:[a-z] [0-9] [a-z0-9]:都只代表一位
开始:^ 在正则的最开始位置,就代表起始的意思
结束:$ 在正则的最后的位置,就代表结束的意思
正则中的量词:
概念:出现的次数;
语法:{n,m}:至少出现n次,最多出现m次
{n,}:至少n次
{n} :刚好n次
* = {0,} :任意次
? = {0,1} :零次或者一次
+ = {1,} :至少出现一次
例:
没有‘+’,全局匹配的时候把每一个数字单独的列出来
==>
有‘+’,全局匹配的时候把挨着的单个数字作为一个数字输出来
转义字符:
\n:换行; \r:制表; \t:回车; |
|
\s:空格 |
\S:非空格 |
\d:数字 |
\D:非数字 |
\w:字符 (字母,数字,下划线) |
\W:非字符 |
. :任意字符 |
\. :真正的点 |
\b:独立的部分(起始,结束,空格) |
\B:非独立的部分 |
\number:重复的子项,number为数字,例\1表示重复的第一个子项;\2表示重复的第二个子项;依次类推 例1: var str = ‘abca’; var re = /(a)(b)(c)\1/ ; 这里的\1就是第一个子项a,也就是说re = /(a)(b)(c)(a)/ re.test(str) ==>true 例2: var re = /\w\w/ :这里的两个转义字符可以不一样 ==> cc 、 c9 、 99 var re = /\w\1/ :这里的\1必须和第一个\w的值一样,== > cc、 99 、 bb 即:/\w\w/ 不一定等于 /\w\1/
|
|
正则末尾跟随字母含义: |
|
g:全局匹配 |
|
i:不区分大小写 |