正则表达式
创建正则表达式的对象
语法:
var 变量 = new RegExp("正则表达式", "匹配模式");
使用字面量来创建正则表达式
语法: var 变量 = /正则表达式/匹配模式
使用字面量的方式创建更加简单
使用构造函数创建更加灵活
test()
使用这个方法可以用来检查一个字符串时候符合正则表达式的规则
如果符合则返回true, 否则返回false
匹配模式
在构造函数中可以传递一个匹配模式作为第二个参数:
i 忽略大小写
g 全局匹配模式
量词
通过量词可以设置一个内容出现的次数
量词只对{}前的一个内容起作用
{n} 正好出现 n 次
eg: reg = /a{3}/ aaa | /ab{3}/ abbb | /(ab){3}/ ababab
{m,n} 出现 m 到 n 次
{m,} 出现 m 次以上
+ 至少一个,相当于 {1,}
* 0个或多个,相当于 {0,}
? 0个或一个, 相当于 {0,1}
其他
^
表示开头
$
表示结尾
如果在正则表达式中,同时使用 ^ $则要求字符串必须完全符合正则表达式
.
表示任意字符
\
表示 转义字符
\.
表示 .
\\
表示 \
字符串中也需要写 \\ 表 \
注意: 使用构造函数时,由于它的参数是一个字符串,而 \ 是字符串中转义字符, 如果要使用 \ 则需要使用 \\ 来代替
\w
- 任意 字母数字 _ [A-z0-9]
\W
- 除了 字母数字 _ [^A-z0-9]
\d digit 零到九中的任一数字;
- 任意的数字 [0-9]
\D
- 除了数字 [^0-9]
\s spacing 字距,行距;
- 空格
\S
- 除了空格
\b boundary 边界;
- 单词边界
\B
- 除了单词边界
var reg = new RegExp("a"); 检查字符串是否含有字符串aa 严格区分大小写
var reg = new RegExp("aa", "i"); 忽略大小写啦啦啦啦啦啦啦 true
几个实例
// 1. 创建一个字符串, 用来检测一个字符串是否是一个合法手机号
// 1,11位数字 2,第一位以 1 开头 3,第二位不能是0,1,2即3-9的任意数字 4,三位以后九个任意数字\
// /^1[3-9][0-9]{9}$/
// 2. 创建一个正则表达式检查一个字符串是否含有单词 child
// reg = /\bchild\b/
// 3. 创建一个正则表达式自动去除掉字符串中的空格,即使用 "" 来替换空格
// let str = " admin "
// 去除开头的空格,
// str = str.replace(/^\s*/,"")
// 去除结尾的空格
// str = str.replace(/\s*$/, "")
//总和 str = str.replace(/^\s*|\s*$/g, "")
// 电子邮件的正则表达式
// 电子邮件
// hello @abc.com.cn/
// 任意字母数字下划线 .任意字母数字下划线(有无都可) @ 任意数字字母 .任意字母(2-5位).任意字母(2-5位,有无都可)
// \w{3,} (\.\w+)* @ [A-z0-9]+ (\.[A-z]{2,5}){1,2}
// var emailReg = /^\w{3,}(\.\w+)*@[A-z0-9]+(\.[A-z]{2,5}){1,2}$/