regular expreesion :RegExp

用来处理字符串规则

只能处理字符串

它是一个规则

console.log(RegExp)

let str = "learn "

let reg = /\d+/;

reg.test(str) ;// fasle


str = "2019-08-12"


//捕获

reg.exec(str) // ["2019",index:0,...]


二、编写正则表达式

1、创建方式

//字面量 用来描述规则的元字符

let reg = /\d+/


// 构造函数 需要转义

reg = new RegExp("\\d+")


2、由两部分组成 需要背

元字符

修饰符


// 常用元字符

1、量词元字符 设置出现的次数

* 零到多次

+ 1到多次

?零次或一次

{n}出现n 次

{n,} 出现n次到多次

{n,m} 出现n到m次


特殊元字符:单个或者组合在一起代表特殊的含义

\转义字符

. 除\n(换行符)以外的任意字符


^ 以哪一个元字符作为开始

$ 以哪一个元字符作为结束

\n 换行符

\d 0~9 之间的数字

\D 非0~9的一个数字 大小写就是相反的


\w 数字、字母、下划线的任意一个字符

\s 一个空白字符 (包含空格、制表符、换页符)

\t 一个制表符 (一个TAB键:四个空格)

\b 匹配一个单词的边界

| x|y 1|5|9

[] [xyz] x或者y或者z的一个字符

[^xyx] 除了以外字符

[a-z] 指定a到z的规则[0-9a-zA-Z_] === \w

() 正则中的分组符号

(?:) 只匹配不预查

(?=) 正向预查

(?!)负向预查


//普通元字符 代表本身含义

/kacoro/ 此正则匹配的就是kacoro


//正则表达式常用修饰符 img

i ignoreCase 忽略大小写

m multiline 可以进行多行匹配

g global 全局匹配


/A/.test("lalala") //false

/A/i.test("lalala") //true



元字符细节

验证手机号码

/^1\d{10}$/


.不是小数点而是除换行符以外的任意字符

/^2.3$/

2.3 true

2@3 true

23 false


/^18|29$/

匹配混乱


/^(18|19)$/

x|y一般配合括号分组让只能匹配18或19


[]中括号中出现的字符一般都代表本身

含义,不转义。


0条评论