1、创建方式
1、字面量创建方式
var reg = /abc/
2、内置构造函数
var reg = new RegExp("abc")
2、 test 验证字符串是否符合规则
//返回布尔值,符合规则,返回 true 否则 false
var str = "abc"
var reg = /abc/
var res = reg.test(str)
console.log(res)//true
3、元字符
- 1、\d 有一个数字
- 2、\D 一个非数字
- 3、\s 一个空格
- 4、\S 一个非空格
- 5、\w 数字字母下划线
- 6、\W 非数字字母下划线
- 7、. 除了换行以外的其他字符
4、限定符
- 1、 * 0 ~ 正无穷次
- 2、 + 1 ~ 正无穷次
- 3、 ? 0 ~ 1
- 4、{ n } 出现 n 次
- 5、{ n, } 出现 n ~ 正无穷次
- 6、{ n,m } 出现 n ~ m 次
5、边界符
- ^ 以……开头
- $ 以……结尾
6、其他符号
- \ 转义符 :本身没有特殊含义的东西 加上 \ 就有了特殊含义,本身有特殊含义的东西,加上 \ 就没有了特殊含义
- ( ) 把一堆东西当做一个整体
- | 或者,占位符
[ ]
里面的东西任选一个-
多少到多少[^]
非
7、正则的方法
- 1、
test()
返回值是布尔值 - 2、
exec( )
匹配字符串里面符合规则的字符,返回值是一个数组 数组的第 0 项就是满足规则的字符,如果找不到,就返回 null 当你再次匹配的时候,又从头开始匹配。
var reg = /\d{3}/g
var str = "sada123asdasdas456asdasf789asdas452"
var res = reg.exec(str)
console.log(res[0])//123
var res = reg.exec(str)
console.log(res[0])//456
var res = reg.exec(str)
console.log(res[0])//789
var res = reg.exec(str)
console.log(res[0])//452
var res = reg.exec(str)
console.log(res)//null
var res = reg.exec(str)
console.log(res[0])//123
8、标识符
- g 全局
- i 忽略大小写
9、配合正则使用的字符串的方法
1、replace( )
替换
var str = "sdSMsdadaSMsdaSM"
var reg = /SM/g
var res = str .replace(reg,"**")
console.log(res) //sd**sdada**sda**
2、match( )
把符合规则的字符串提取出来,放到数组里面去
var str = "sad123asdad456asdasd789asda456"
var reg = /\d{3}/g
var res = str.match(reg)
console.log(res) //["123","456","789","456"]
3、search( )
搜索
var str = 'dghsag123fhdsf321cjskahjfd456sakhd789djsa'
var reg = /\d{3}/
var res = str.search(reg)
console.log(res) //6 返回是下标