正则表达式RegExp
正则是惰性验证,从左往右开始验证,只要满足一个条件即可,一次一个,没有修饰符g(全局查找),每次验证都从下标0开始,加g下一次查找位置在上次通过查找的位置下标后一个开始
- new关键字创建 new RegExp(‘检索表达式’,‘修饰符i/g’)
var reg = new RegExp('[0-9]','g') //g 全局查找
- 字面量创建
var reg2 = /[0-9]/g //修饰符放到/后面
- 区别
字面量创建正则没有变量的概念
//没有变量概念
var str = 'web'
var reg = /str/g
console.log(reg) // /str/g
//有变量概念
var reg1 = new RegExp(str,'g');
console.log(reg1) // /web/g
验证正则js的方法
- str.replace(reg条件,“替换的内容”);
var str = '1a2b3c4d'
console.log(str.replace(/[0-9]g/,"-"))
- str.split(reg条件)
console.log(str.split(/0-9/));
- str.search(reg条件) 和indexOf一模一样,接收正则
console.log(str.search(/0-9/g))
- str.match(reg条件) 返回符合满足条件的数组数据
console.log(str.match(/[0-9]/g))
正则验证方法
- reg.test(str) 检测字符串是否通过正则验证,通过true,不通过false
/[0-9]/g.test(123)
- reg.exec(str) 进行具体的正则验证,通过返回数组,不通过返回null,查找到返回,不再继续查找,下次在上次查找到的index位置继续查找
let url = 'a234a'
let reg = new RegExp('a','g')
let v1 = reg.exec(url) //第一次查找到a,找到返回,停止查找
console.log(reg.lastIndex) //1
let v2 = reg.exec(url) //第二次在上次查找到的位置继续查找
console.log(reg.lastIndex) //5