先摘抄一段官方解释-------正则表达式:又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表通常被用来检索、替换那些符合某个模式(规则)的文本。
正则表达式的功能尤其强大,下面来看看具体它能做什么吧!
1,正则表达式的创建:
(1)字面量:var reg = / / ;
(2)表达式:var reg = new RegExp();
2,正则表达式的分类:
(1)简单类:eg: var reg = / abc / ---- 匹配内部含有abc的字符串
(2)字符类:eg:var reg = / [abc] / ----- 匹配内部含有a或b或c的字符串
(3)反向类:eg:var reg = / [^abc] / ---- 匹配内部不含有abc的字符串
(4)范围类:eg: var reg = /[a-n]/ ---- 匹配内部含有a-n中任意一个元素的字符串
(5)组合类:eg : var reg = /[1-6c-z]/ --- 匹配内部含有1-6或者c-z中任意一个元素的字符串;
(6)预定义类(只列举一些常用的)
------------- 点 (. ) ------------- 匹配除了换行和回车之外的所有字符
-------------- \d ------------------- 匹配 数字=>/[0-9]/
-------------- \D------------------- 匹配非数字=>/[^0-9]/
-------------- \w ------------------ 匹配字母=>/[a-zA-Z]/
--------------\W------------------ 匹配非字母=>/[^a-zA-Z]/
-------------- \s ----------------- 匹配空格
-------------- \b ---------------- 单词边界
(7)边界标识 :var reg = /^abc/ 匹配以abc开头的字符串;var reg = /abc$/匹配以abc结束的字符串;va reg = /^abc$/ 严格匹配abc
(8)自定义量词:
--------------- / a{n} /---------- 表示匹配n个a
--------------/ a{m,n} /--------- 表示匹配m-n之间任意数量的a
-------------/ a{m,} / ---------- 表示匹配a出现的次数至少为m次
(9)预定义量词:
------------- / a* / ------------- 表示匹配a出现l零次或多次
------------- / a+ / ------------ 表示匹配a出现一次或多次
-------------/ a? / -------------表示匹配a出现零次或一次
3,正则表达式的使用:
(1)reg.test( 字符串 ) ------- 返回值为布尔值,匹配成功返回true,失败则返回false;
(2)字符串.match(reg) ------- 返回值为一个数组;
(3)reg.exec(字符串)------- 同样返回一个数组;
(4)字符串.replace(reg,替换后的值) ----- 返回结果为替换后的字符串
4,注意点:
(1) /g ----- 全局匹配
(2)/i ------- 忽略大小写匹配
(3)/m ----- 多行匹配(针对换行情况)
(4) lastIndex ----- 当前匹配结果的最后一个字符的下一个字符的索引
这里需要举个栗子:
var reg = /\w/g;
console.log( reg.test("ab")) ----- 第一次打印结果为true;第二次打印结果为true;第三次打印结果为false;再次打印,结果又从true--true---false依次循环往复。第一次打印的时候,当前匹配结果为a,a为单个字符,所以它的下一个字符是b,b的索引即为1;第二次打印的时候,当前匹配结果为b,b也是单个字符,它的下一个字符是空,索引为2;后面就没有匹配的结果了。
(5)前瞻:
-----正向前瞻:exp(?=assert)-------
-----负向前瞻:exp(?!assert)--------
举个栗子:
"a1b2*3".replace(/\w(?=\d)/g,“x")----> x1x2*3
断言的部分?=\d不会加入运算中,知识匹配的一个条件。
(6)反向引用:
举个栗子:将2017-10-02转化为10/02/2017
var str = "2017-10-02";
var reg = /(\d{4})-(\d{2})-(\d{2})/g
str.replace(reg, '$2/$3/$1' ) -----> 10/02/2017
加了小括号()代表分组,第一个分组是 $1 ,第二个分组是$2,第三个分组是 $3.....
网友评论