介绍正则表达式:
作用:匹配字符串
适用范围:在所有编程语言中都适用
组成:是由元字符或限字符组成的一个式子
元字符(其实元字符和限字符统称为元字符)
. 表示的是:除了\n以外的任意的一个字符 "fdsfs238"
[] 表示的是:范围, [0-9] 表示的是0到9之间的任意的一个数字, "789" [0-9]
[1-7] 表示的是1到7之间的任意的一个数字
[a-z] 表示的是:所有的小写的字母中的任意的一个
[A-Z] 表示的是:所有的大写的字母中的任意的一个
[a-zA-Z] 表示的是:所有的字母的任意的一个
[0-9a-zA-Z] 表示的是: 所有的数字或者是字母中的一个
[] 另一个函数: 把正则表达式中元字符的意义干掉 [.] 就是一个.
| 或者 [0-9]|[a-z] 表示的是要么是一个数字,要么是一个小写的字母
() 分组 提升优先级 [0-9]|([a-z])|[A-Z]
* 表示的是:前面的表达式出现了0次到多次
+ 表示的是:前面的表达式出现了1次到多次
? 表示的是:前面的表达式出现了0次到1次,最少是0次,最多1次 ,另一个含义:阻止贪婪模式
限定符:限定前面的表达式出现的次数
{} 更加的明确前面的表达式出现的次数
{0,} 表示的是前面的表达式出现了0次到多次,和 *一样的
{1,} 表示的是前面的表达式出现了1次到多次,和 +一样的
{0,1} 表示的是前面的表达式出现了0次到1次,和 ?一{5,10} 表示的是前面的表达式出现了5次到10次
{4} 前面的表达式出现了4次
{,10} 错误的========不能这么写
^ 表示的是以什么开始,或者是取非(取反)
^[0-9] 以数字开头 ^[a-z] 以小写字母开始 [^0-9] 取反,非数字 [^a-z] 非小写字母
$ 表示的是以什么结束 [0-9][a-z]$ 必须以小写字母结束
^[0-9][a-z] 相当于是严格模式 "3f2432e" "4f"
\d 数字中的任意一个,
\D 非数字中的一个
\s 空白符中的一个
\S 非空白符
\w 非特殊符号
\W 特殊符号
\b 单词的边界
总结
. 除了\n以外的任意一个单个字符
[] 范围
() 分组,提升优先级
| 或者
* 0-多次
+ 1-多次
? 0-1次
{0,} 和*一样
{1,} 和+
{0,1} 和?_
^ 取反,以什么开始
$ 以什么结束
常见(用)的正则表达式
1 身份证的正则表达式
//15位或者18位
([1-9][0-9]{14})|([1-9][0-9]{16}[0-9xX])
([1-9][0-9]{14})([0-9]{2}[0-9xX])?
2 座机号码的正则表达式
//010-19876754
//0431-87123490
[0-9]{3,4}[-][0-9]{8}
\d{3,4}[-]\d{8}
\d{3,4}[-][0-9]{8}
3 qq号码的正则表达式
[1-9][0-9]{4,10}
\d{5,11}
4 手机号码的正则表达式
* 130 131 132 133 134 135 136 137 138 139
* 143 147
* 150 151 152 153 154 155 156 157 158 159
* 170 171 173 176 177
* 180 181 182 183 184 185 186 187 188 189
([1][358][0-9][0-9]{8})|([1][4][37][0-9]{8})|([1][7][01367][0-9]{8})
\d{11}
5 邮箱的正则表达式,必须要记住的
*sd2113_3.-fd@itcast.com.cn
[0-9a-zA-Z_.-]+[@][0-9a-zA-Z_.-]+([.][a-zA-Z]+){1,2}
正则表达式创建对象
函数创建
//对象创建完毕---
var reg=new RegExp(/\d{5}/);
//调用方法验证字符串是否匹配
var flag=reg.test("我的电话是10086");
console.log(flag);
字面量创建
//字面量的方式创建正则表达式对象
var reg=/\d{1,5}/;
var flag=reg.test("小苏的幸运数字:888");
console.log(flag);