一、概念:
- 正则表达式(Regular Expression),用于描述一组字符串特征的模式,可以用于匹配特定的字符串。
- 本质是一个规则字符串,用指定的符号来编写,制定规则。
二、应用场景:
- 验证:对表单数据的合法性验证;
- 查找:从大量的字符串数据中快速提取到指定内容;
- 替换:从大量的字符串数据中快速提取到指定内容,并进行替换;
三、如何创建正则表达式:
-
方式一:
-
var 正则变量名称=new RegExp('正则表达式');
-
转义符
\
使用要用两个\\
-
var telReg=new RegExp('^1[3-9]\\d{9}$');
-
-
方式二:(常用)
-
var 正则变量名称=/正则表达式/
-
转义符
\
使用只需要一个\
-
var telReg=/^1[3-9]\d{9}$/;
-
四、语法
- 字符类
.
- 匹配任意一个字符。
[]
- 匹配中括号中任意一个字符。
[abc]
:取a、b、c中任意一个字符。
-
- 在中括号中表示字符范围。
[a-zA-Z]
:取任意一个大写或小写字母。[a-zA-Z0-9]
:取任意一个数字、字母。
^
- 在中括号中表示除中括号内字符以外的任意一个字符。
[^a-zA-Z]
:取除字母以外的任意一个字符。
- 数量限定符
?
- 紧跟前面的单元匹配0次或1次。
[a-z]?
:出现0次或1次小写字母。
+
- 紧跟前面的单元匹配1次或多次。
[a-z]+
:出现1次或多次小写字母。
*
- 紧跟前面的单元匹配任意次。
[a-z]*
:出现任意次小写字母。
{N}
- 紧跟前面的单元匹配N次。
[a-z]{2}
:出现2次小写字母。
{N,}
- 紧跟前面的单元匹配至少N次。
[a-z]{2,}
:出现至少2次小写字母。
{0,M}
- 紧跟前面的单元匹配至多M次。
[a-z]{,2}
:出现至多2次小写字母。
{N,M}
- 紧跟前面的单元匹配至少N次至多M次。
[a-z]{6,12}
:出现至少6次至多12次小写字母。
- 位置限定符
^
:- 匹配行首位置。
^1
:以1开头。^[a-z]
:以小写字母开头。
$
:- 匹配行尾位置。
[a-z]$
:以小写字母结尾。
- 预定义符号
\w
:- 数字、字母、下划线中任意一个字符。等价于
[a-zA-Z0-9_]
。
- 数字、字母、下划线中任意一个字符。等价于
\W
:- 除了数字、字母、下划线以外的任意一个字符。等价于
[^a-zA-Z0-9_]
。
- 除了数字、字母、下划线以外的任意一个字符。等价于
\d
:- 任意一个数字字符。等价于
[0-9]
。
- 任意一个数字字符。等价于
\D
:- 任意一个非数字字符。等价于
[^0-9]
。
- 任意一个非数字字符。等价于
\s
:- 匹配任意一个空白字符(空格和换行)。
\S
:- 匹配任意一个非空白字符(空格和换行)。
- 特殊符号
()
- 将小括号中内容作为一个单元进行处理(一个整体)。
\.(com|cn|org)$
:以.com
、.cn
或.org
结尾。
|
- 表示或者。
\
- 转义符,将
\
右边的字符进行转义,如果右边的字符具备特殊意义(正则字符),则转义后,不具备特殊意义(普通字符)。
- 转义符,将
五、常用函数:
-
test()
-
判断指定字符串是否满足当前正则表达式规则,如果满足则返回true,否则返回false。
-
var reg=/^\.(com|cn|org)$/; var str=prompt('请输入:'); console.log(reg.test(str));
-
六、String中正则表达式的相关常用函数
-
match()
-
用于检索当前字符串中与指定正则表达式匹配的值。
-
参数
- 目标正则表达式。
-
返回值
- 查找到的目标字符结果。
-
var str='12ab34cd56ef78gh999'; var reg=/[0-9]+/g; console.log(str.match(reg));//['12','34','56','78','999']
-
-
replace()
-
将当前字符串中与指定正则表达式匹配的值替换为指定值。
-
参数
- 目标正则表达式。
-
返回值
- 替换后的字符串结果。
-
var str='123abc456efg789'; var reg=/[0-9]/g; console.log(str.replace(reg,'*'));//***abc***efg***
-
-
split()
-
将当前字符串中与指定正则表达式匹配的值作为分割符进行分割,形成子串数组。
-
参数
- 目标正则表达式。
-
返回值
- 切割后的子串数组。
-
var str='123abc456efg'; var reg=/[0-9]+/; console.log(str.split(reg));//['','abc','efg']
-
七、匹配模式
-
分类
u
:只匹配第一个子串结果。默认模式。g
:全局匹配模式,匹配所有子串。i
:忽略大小写模式。
-
使用
-
方式一:
-
var 正则变量名称=new RegExp('正则表达式','模式');
-
var telReg=new RegExp('[a-z]','ig');
-
方式二:(常用)
-
var 正则变量名称=/正则表达式/模式
-
var telReg=/[a-z]/ig;
-
-
-