js14正则
//第一种定义
var regx = /^a$/
//第二种定义
var regx1 = new RegExp('^a$')
//[]表示其中一个元素
var regx2 = /^[abcdef]$/ //匹配a或b或c或d或e或f 其中一个单词
//{}表示个数
var regx3 = /^[abc]{2}$/ //匹配ab bc ac ba cb ca aa bb cc 意思就是abc三个元素任意两个组成的单词
// g表示全局匹配(全局搜索所有结果 没有全局找到第一个就不找了) i表示不区分大小写
var regx4 = /^[ab]{2}$/gi //匹配 aa ab ba bb Aa aA AA Ab aB BB Ba AB BA bA
//使用第二种定义如果需要加上g或i关键词
var regxObj = new RegExp('^a$', 'gi')
//修饰符
// +表示一个到多个
var regx5 = /^[a]+$/ //匹配 a aa aaa aaaa....匹配一个或多个a
// *表示0个到多个
var regx6 = /^[ab]*$/
//? 表示0个到一个
var regx7 = /^a[ab]?$/ //匹配a aa ab
//对应正则对象的方法
// test 是否符合对应的表达式 test()里面的参数为string类型 返回结果为boolean类型
regx7.test('a') // true
regx7.test('aba') //false
//exec方法 找到符合的所有结果 返回数组 没有匹配的返回null
regx7.exec('ab')
//string类型支持正则的方法
//split截取方法
//replace替换方法支持正则
//seach搜索方法
//match 正则对象的exec方法很像返回也是一个数组里面的元素为匹配的结果(返回第 一个找到的)
var regx2 = /[abc]{2}/
console.log(' abca '.match(regx2));
//正则对象的方法
//test方法判断是否有匹配的有返回true没有返回false
//exec方法返回一个数组数组里面为匹配的结果(返回第一个找到的)
//如果加g的话 从左往右找 找不到就不管
var regx3 = /[abc]{2}/g
console.log('abcabb'.match(regx3));
// . 表示任意字符
//如果要匹配点就要用\转译 ---> \.
var reg = /./
var str = ' '
console.log(reg.test(str)) //true
// \s表示空白,包括空格 换行符 tab.. \S相反 表示非空
var regx1 = /\s/
var regx2 = /\S/
console.log(regx1.test(str)) //true
console.log(regx2.test(str)) //false
// \d表示数字 \D非数字
var regx3 = /\s/
var regx4 = /\S/
console.log(regx3.test('132')) //true
console.log(regx4.test('123')) //false
// \w表示数字字母下划线 \W非数字字母下划线
var regx3 = /\w/
var regx4 = /\W/
console.log(regx3.test('_')) //true
console.log(regx4.test('_')) //false
// ()这个里面没有什么意义 主要做代码的范围分割
var regx7 = /([a][b]){2}/ //匹配的元素 abab
console.log(regx7.test('abab'))
// 可以直接取出括号里面的值
console.log(RegExp.$1) //去除第一个括号的内容
console.log(RegExp.$2) //没有第二个括号的话 拿到内容为空
// | 或
var regx8=/abc|bcd/ //匹配abc或bcd
console.log(regx8.test('abc'))//true
// 如果加了?后面的括号里的内容不能获取了 RegExp.$
var regx9=/\w{6}/ //忽略掉了
console.log(regx9.test('123456'))//true
console.log(regx9.test('12345'))//false
console.log(regx9.test('123456789'))//true
console.log(regx9.test(''))//false
// m换行匹配 g全局匹配 i忽略大小写9

浙公网安备 33010602011771号