正则表达式
// [A-Z] 查找任何从大写 A 到大写 Z 的字符
/* [a-zA-Z] 表示大小写的26个英文字母 都能匹配 */
/* [0-9] 查找任何从 0 至 9 的数字 */
/* /[0-9a-zA-Z]/ 表示26个大小写英文字母和数字都匹配 */
/* [] 只要有一个符合都返回true 例如下面*/
// let reg = /[0-9]/;
// console.log(reg.test('abc'))
/* [abc] 查找括号内的任意一个字符 */
/* ^[] 表示以什么开头 */
/* []$ 表示以什么结尾 */
/* + 表示匹配前面字符串一次或者多次 */
/* 可以匹配纯26个英文小写的字母 */
// let reg = /^[a-z]+$/;
// console.log(reg.test('abcccc'))
/* 匹配一串字符 包括多个 英文字母 包括大小写 和数字 */
// let reg = /^[a-zA-Z0-9]+$/;
// console.log(reg.test('BASADasdf123123'))
/* {n,} 至少匹配n 次 /^[a-z]{2,}$/ */
/* 以[]内任意一个字母(包括大小写)或者数字开头 */
// {n,m} 最少匹配 n 次且最多匹配 m 次 /^[a-z]{2,3}$/
/* {n} 匹配确定的 n 次 /^\d{2}$/ 要加限定字符,否则2次以上也为true */
// // 匹配前面的子表达式零次或多次 /[a-z]*/ 字母出现与否都为true
// ? 匹配前面的子表达式零次或一次/[a-z]?/字母出现0或1次都为true
// 正则有个特性只要匹配了一次都返回true,所以要加限定字符^$
/* [^abc] 查找除了括号内的任意字符 */
/* 写在[]里面的^叫除了 */
// let reg = /[^abc]/;
// console.log(reg.test('dfgg'))
判断是否符合正则
/* 正则对象校验的两个方法 */
/* test 符合返回true 不符合返回false */
/* exec 符合返回一个数组 不符合返回null*/
let reg = /^[a-z]+$/
console.log( reg.exec('abc') )
元字符
\w 匹配数字、字母、下划线
\W 匹配非数字、字母、下划线
\d 匹配数字
\D 匹配非数字
\s 匹配空白字符(空格 、换行\n 回车\r) 空字符串''不可以
\S 匹配非空白字符 (空格 、换行\n 回车\r 空字符串'' 4个返回false
\n 匹配换行符 这里只匹配\n 不匹配\r
正则的定义
/* i 执行对大小写不敏感的匹配 */
// let reg = /[a-z]/i;
// console.log( reg.test('C') );
// let reg = new RegExp(/[a-z]/,'i');
// console.log( reg.test('C') );
// g 执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)
let str = 'abc1a2c3b';
console.log( str.match(/a/g) )
/* [a-z] 查找任何从小写 a 到小写 z 的字符 */
/* 构造函数的方式 */
/* reg是构造函数RegExp new出来的实例化对象 */
// let reg = new RegExp(/[a-z]/);
/* 正则的方法 test() 可以判断你输入的字符串是否符合要求
符合就返回true 不符合就返回false*/
/* 用字面量的方式来表示正则 */
// let reg = /[a-z]/;
// console.log( reg.test('C') );
String验证正则的方式
// let str = '123abc';
/* 返回匹配到的第一个字符串的下标,否则返回-1 */
/* console.log( str.search(/[a-z]/) ) */ /* ==> 3 */
// 如果没有找到任何匹配的文本,返回 null
// 否则,它将返回一个数组(依赖于是否具有全局标志 g)
// let str = 'cc123ab'
/* console.log( str.match(/[0-9]/) ) */ /*返回 ['1', index: 3, input: 'abc123qwe', groups: undefined] */
/* console.log( str.match(/[0-9]/g) ) */ /* ['1', '2', '3'] */
/* 返回一个新的字符串 */
// let str = 'abc123qwe'
// let newStr = str.replace('bc','oo');
// let newStr = str.replace(/[0-9]/,'oo'); =>abcoo23qwe
// let newStr = str.replace(/[0-9]/g,'oo'); =>abcooooooqwe
// console.log(newStr);
// let str = 'a1b2c3d4e5f'
// // console.log( str.split('-') ) /* 匹配不到会把整个字符串当成数组返回 */
// /* 以数字为分隔符来分割 => [a,b,c,d] */
/* split的第二个参数表示 分割成几个数组的意思 */
// console.log( str.split(/[0-9]/,5) )