天天看点

js基础,正则

正则表达式

功能:描述一个字符串的匹配模式

即判断用户输入的内容是否符合设置的规则

字面量声明

书写格式 :关键字 标识符 赋值符号 /规则/;

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