1,什么是正则表达式
检测字符串的一种规则,多用于表单的校验
2,如何创建正则表达式?
a ,字面量 :/正则表达式/标志位
b,构造函数:new RegExp('正则表达式','标志位‘)
3,正则表达式的方法
a,正则表达式对象.test(字符串) 检测字符串中是否包含正则表达式的内容,返回布尔值
b,正则表达式对象.exec(字符串) : 返回一个数组,没有匹配,返回null
4,字符串的方法
a,字符串对象.match(正则表达式) :返回一个数组,没有匹配,返回null
b,字符串对象.replace(旧串,新串) : 替换
c,字符串对象.search(正则) : 类似于indexOf()
5,标志位
g: 全局匹配
i: 不分大小写
6,元字符 口诀(三三二,三个一)
三 { } [ ] ( )
{ } :表示 {}前的一个或一组字符连续出现的次数。
{ m} :表示{}前的一个或一组字符连续出现m次
var rg = /^do{3}$/i
var str = 'dooo'
console.log(rg.test(str))
{m,}:表示{}前的一个或一组字符连续出现最少m次
var rg = /^do{3,}$/i
var str = 'dooooooooo'
console.log(rg.test(str))
{m,n}:表示{}前的一个或一组字符连续出现最少m次,最多n次
var rg = /^do{3,5}$/i
var str = 'doooo'
console.log(rg.test(str))
[ ] :表示范围
var rg = /^[abc]{3,5}$/i
var str = 'abcb'
console.log(rg.test(str))
var re = /^[a-zA-Z0-9]{3,5}$/;
var str = "3wa";
console.log(re.test(str));
var re = /^[\u4e00-\u9fa5]{3,5}$/;
var str = "张三丰";
console.log(re.test(str));
():表示组
var rg = /^(do){3,5}$/i
var str = 'dodododo'
console.log(rg.test(str))
三:* + ?
* :表示*前的一个或一组字符连续0至无线次 相当于{0,}
var rg = /^(do)*$/i
var str = 'dodododo'
console.log(rg.test(str))
+ :表示+前的一个或一组字符连续出现1至无限次 相当于{1,}
var rg = /^(do)+$/i
var str = 'dodododo'
console.log(rg.test(str))
?:表示?前的一个或一组字符出现0至1次 相当于{0,1}
var rg = /^(do)?$/i
var str = 'do'
console.log(rg.test(str))
二 ^ $
^ :1. 写在正则表达式的开头,表示定头,限制开头字符
2. 写在[]中开头部分,表示取反 [^0-9]
$ : 表示定尾,限制结尾字符
三个一 : 。 | \
. :表示可以模糊匹配任意一个字符
var rg = /^.o.$/
//注意字符串do后面只能跟一个空字符串
var str = 'do '
console.log(rg.test(str))
|:表示或者
var rg = /^(男|女)$/
var str = '男'
console.log(rg.test(str))
\:表示转义
var rg = /^\.[a-z]{6}$/
var str = '.ilovey'
console.log(rg.test(str))
\d:表示数字 [0-9]
\D:表示非数字 [^0-9]
\s :表示空白
\S:表示非空白
\w:表示字母数字下划线 [a-zA-Z0-9_]
\W:表示非字母数字下划线 [^a-zA-Z0-9_]
\b:表示单词边界
var re = /^\D{6}$/;
var str = ".jsyyt";
console.log(re.test(str));