引用类型
JS引用类型是数据和功能的集合,但并非是类。
这些东西也被称为内置对象。
正则表达式
正则表达式可以用来匹配字符串的使用类型,很方便。
创建
正则表达式有两种创建方法
一种是的构造函数创建方法
let reg = new RegExp(“pattern”, “flags”);
一种是以字面量的方法创建👍
let expression = /pattern/flags;
如上所示正则表达式包含两个部分 pattern 和flags
匹配模式
匹配模式有十一种元字符,加上其他匹配字符,构成表达式主体
- ^ 表示匹配开头
- + 匹配1一次或多次
- * 匹配0次或多次
- | 或字符
- ? 匹配0次或一次
- . 除了换行符在之外的所有字符
- \ 转义字符
- () 括号内的优先匹配
- [] 多个元素或在一起
- {} 三种用法{n,m} 匹配n~m次,{n}匹配n次{n,}至少n次
标记
标记一共有六种
- g 全局模式,其他的找到第一个内容就退出
- i 不区分大小写
- m 多行匹配
- y
- u
- s
RegExp的属性值
regexp中有六个属性用来存储六种标记
以source和flag 分别存放不带反斜杠的pattern和标记
RegExp的实例方法
常用的实例方法有三个
exec()
返回一个数组,这个数组有额外的index和input属性;
数组中会存放匹配到的字符并按照索引排布
如果没有匹配成功,则返回null
match()
match()返回匹配到的数组,没有匹配到返回null
test()
最简单的,匹配成功返回true,匹配失败返回false
代码示例
1.判断书写格式
给定字符串 str,检查其是否符合美元书写格式
1、以 $ 开始
2、整数部分,从个位起,满 3 个数字用 , 分隔
3、如果为小数,则小数部分长度为 2
4、正确的格式如:$1,023,032.03 或者 $2.03,错误的格式如:$3,432,12.12 或者 $34,344.3
let rex = /^\$(\d{1,3})(,\d{3})*(\.\d{2})?$/;
console.log(rex.test("$229.92"));
只会返回true和false
2.获取字符串
给定字符串 str,检查其是否包含 连续3个数字,请使用正则表达式实现。
1、如果包含,返回最先出现的 3 个数字的字符串
2、如果不包含,返回 false
function captureThreeNumbers(str) {
let rex = /\d{3}/;
if (rex.test(str)){
return rex.exec(str)[0];
}
else{
return rex.test(str);
}
}