一、正则表达式的创建
①:利用RegExp对象来创建 正则表达式
let regExp = new RegExp(/abc123!/)
console.log(regExp)
② :利用字面量 创建 正则表达式
let reg = /aabbcc/
③: test 方法检测字符串是否符合 正则表达式 规则
let reg = /123/
console.log(reg.test(123))
二、边界符 ^ $
// 边界符 ^ $
let reg = /abc/ // /abc/表示字符串只要包含 abc 这个子字符串即可
console.log(reg.test('abcd')) // true
console.log(reg.test('fdsdfabc')) // true
console.log(reg.test('aadbc')) // false
console.log('-*******************************-')
let reg1 = /^abc/ // 该正则表达式 要求字符串必须以 abc开头
console.log(reg1.test('abc')) // true
console.log(reg1.test('abcdds')) // true
console.log(reg1.test('aabc')) // false
console.log('-*********************-')
let reg2 = /abc$/ // 该正则表达式 要求字符串必须以 abc结尾
console.log(reg2.test('aabc')) // true
console.log(reg2.test('aadf')) // false
console.log('***************************************')
let reg3 = /^abc$/ // 精确匹配 要求字符串就是 abc
console.log(reg3.test('abc')) // true
console.log(reg3.test('abcd')) // false
console.log(reg3.test('dabc')) // false
三、字符类 []
[]表示有一系列字符可供选择,只要匹配其中一个就可以了
let reg = /[abc]/ // 只要包含a或者b或者c其中一个就可以了
console.log(reg.test('andy')) // true
console.log(reg.test('ke')) // false
console.log(reg.test('ok')) // false
console.log(reg.test('color') // true
let reg1 = /^[abc]$/ // a 或者 b 或者 c三者择其一
console.log(reg1.test('a')) // true
console.log(reg1.test('b')) // true
console.log(reg1.test('c')) // true
console.log(reg1.test('abc')) // false
let reg2 = /^[a-z]$/ // -代表范围 a-z代表a...z这26个字母范围区间
console.log(reg2.test('a')) // true
console.log(reg2.test('c')) // true
console.log(reg2.test('s')) // true
console.log(reg2.test('A')) // false
// 26个英文字母(大写、小写)十个阿拉伯数字_ 、- 其中的一个
let reg3 = /^[a-zA-Z0-9_-]$/
console.log(reg3.test('a'))
console.log(reg3.test('A'))
console.log(reg3.test('9'))
console.log(reg3.test('_'))
console.log(reg3.test('-'))
console.log(reg3.test('!'))
// [^] 里面的表示取反的意思 表示里面的全不符合条件
let reg4 = /^[^a-zA-Z0-9-_]$/
console.log(reg4.test('a')) // false
console.log(reg4.test('B')) // false
console.log(reg4.test('-')) // false
console.log(reg4.test('_')) // false
console.log(reg4.test('8')) // false
console.log(reg4.test('`')) // true
四、量词符: 用来设定某个模式出现的次数
简单理解: 就是让字符重复出现多次
// * 相当于 >= 0 可以出现0次或很多次 [0, ∞)
let reg = /^a*$/
console.log(reg.test('')) // true
console.log(reg.test('a')) // true
console.log(reg.test('aa')) // true
console.log(reg.test('aaaa')) // true
console.log(reg.test('baa')) // false
// + 相当于 >= 1 可以出现 1次 或者 很多次
let reg = /^a+$/
console.log(reg.test(''))
console.log(reg.test('a'))
console.log(reg.test('aaaa'))
// ? 出现的次数为 0 || 1
let reg = /^a?$/
console.log(reg.test('')) // true
console.log(reg.test('a')) // true
console.log(reg.test('aaaa')) // false
//{3} 就是重复三次
let reg = /^a{3}$/
console.log(reg.test('')) // false
console.log(reg.test('a')) // false
console.log(reg.test('aaa')) // true
console.log(reg.test('aaaa')) // false
// {3,}大于等于3
let reg = /^a{3,}$/
console.log(reg.test('')); // false
console.log(reg.test('aaa')) // true
console.log(reg.test('aa')) // false
console.log(reg.test('aaaaaa')) // true
// {3, 16} 大于等于3 并且小于等于 16 [3, 16] 区间
let reg = /^a{3,6}$/
console.log(reg.test('aaa')) // true
console.log(reg.test('aaaaa')) // true
console.log(reg.test('aaaaaaaa')) // false