理论基础:
正则表达式:也叫规则表达式
,按照一定的规则组成一个表达式
作用:匹配字符串的
组成:由元字符
或者限定组成的一个式子
常用元字符:?
.
表示除了\n以外任意一个字符>>>例:22sqws
[]
表示的是范围>>>[0-9] 0-9任意一个数>>>例:234
例:100-199之间的数字 [1][0-9][0-9]
[a-z]
表示小写字母中任意一个
[A-Z]
表示大写字母中任意一个
[a-zA-Z]
表示的是所有字母中的任意一个
[0-9a-zA-Z]
表示所有的数字或所有的字母中任意一个
[]
另外一个意义:把正则表达式中的意义干掉 [.] >>>表示的就是一个.
|
表示的是或者的意思 [0-9]|[a-z] 要么是一个数字,要么是一个小写字母
()
表示的是分组,和提升优先级 ([0-9])|([a-z])|([A-Z])
以下叫元字符,也叫
限定符
:?
*
表示的是:前面的表达式出现了0次到多次
例: [0-9][a-z]* "99"可以匹配
+
表示:前面的表达式出现了1次到多次
例:[0-9][a-z]+ "99"不可以匹配
?
表示的是:前面的表达式出现了0次到1次
例: [4][a-z]? “1231234ab” 不能匹配
{}
更加明确前面表达式出现的次数
{0,}
表示的是前面的表达式出现了0次到多次 和*一样
{1,}
表示的是前面的表达式出现了1次到多次 和+一样
{0,1}
表示的是前面的表达式出现了0次到1次 和?一样
{5,10}
表示的是前面的表达式出现了5次到10次
{5}
表示的是前面的表达式出现了5次
错误的写法{,10}
^
表达的是以什么开始,或者是取非
^[0-9]
以数字开头
[^a-z]
非小写字母
[^0-9a-zA-Z]
表示的是特殊符号,因为匹配非数字非字母
$
表示的是以什么结束 [0-9a-z]$ 必须以小写字母结束
^[0-9][a-z]$
相当于严格模式 "3f34jde"不能匹配 "3f"可以匹配
\d
数字中的任意一个
\D
非数字中的任意一个
\s
空白符中的一个
\S
非空白中一个
\w
非特殊符号
\W
特殊符号
创建
Regex
对象,两种方法:
1、通过系统
的构造函数
2、字面量
创建
验证:调用验证字符串是否匹配成功的方法.test()
返回布尔值
下面来个实例?
//1、系统构造函数创建
var reg=new RegExp(/\d{5}/);
var str="我的电话10086";
console.log(reg.test(str));//true
//2、字面量创建
var reg2=/\d{5}/;
console.log(reg2.test("1234"));//false