正则表达式
功能:描述一个字符串的匹配模式
即判断用户输入的内容是否符合设置的规则
字面量声明
书写格式 :关键字 标识符 赋值符号 /规则/;
let re = //;
正则.test(字符串);
返回布尔值,即字符串是否满足正则的规则
字符串.match(正则);
返回满足正则的内容
let str = `1a23`;
let re = /a/;
console.log(re.test(str));//true
console.log(str.match(re));
//[ 'a', index: 1, input: '1a23', groups: undefined ]
加g查找全局,不加找到一个就不找了
正则大小写敏感(区分大小写)添加字母i(insensitive)关闭敏感
let re = /a/ig;
m当获取的内容换行(\n换行)
let str = `123\n123`
let re = /^[1]/mg;
console.log(str.match(re))//["1","1"]
以什么开始加在前面/[1]/, 结 束 加 在 后 面 / [ 1 ] 结束加在后面/[1] 结束加在后面/[1]/
不以什么结束/[^1]/
let re = /^[1][3-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]$/g;
缩写可以加多个{}
let re = /^[1][3-9][0-9]{9}$/g;
大括号的功能
贪婪匹配
书写格式1{n}
取满足n的个数的内容
例如:{3}只去满足3为的内容
书写格式2{n,m}
先去满足m的数量,当m不满足,则取m-1的数量内容,直到n的数量
let arr = "15555555555";
let re = /[1-9]{2,5}/g;
//在arr取1-9之间的数 5位5位的输出,还剩一位 不满足2-5之间就不要
console.log(arr.match(re));//[ '15555', '55555' ]
re = /[1-9]{2}/g;
console.log(arr.match(re));//[ '15', '55', '55', '55', '55' ]
构造函数
let re = new RegExp()
re = /[a]/g
//或者
let re = new RegExp(”a“,g)
规则的简写(快捷)方式
\d 0-9 纯数字
\D 非数字
\w a-z 和0-9和_
\W 取小w反,非字母
\s 空白字符(空格、回车)
\S 取反,不是空白字符
//以数字开头
let str = "123abc"
let re = /^[0-9]/;
console.log(str.match(re))//1
re = /^\d/;
console.log(str.match(re))//1
re = /^\D/;
console.log(str.match(re))//null