day 01
正则表达式
利用最简短的描述语法完成诸如查找、匹配替换登功能。
定义
正则表达式(Regular Expression,简称RegExp)是一种描述字符串结构的语法规则,是一个特定的格式化模式,用于验证各种字符串是否匹配这个特征,进而实现高级的文本查找、替换、截取等操作。
介绍
正则表达式发展历程:
正则表达式的形式:
使用方法
创建
- 字面量方式
// 字面量方式
/pattern/flags
- RegExp对象构造函数方式
// RegExp对象构造函数方式
new RegExp(pattern [,flags])
RegExp(pattren [,flags])
在上面的语法中,pattern是由元字符和文本字符组成的正则表达式模式文本,其中,元字符是具有特殊含义的字符,如“^”,"."或“*”等,文本字符就是普通文本,如数字和字母等。flags表示模式修饰标识符,用于进一步对正则表达式进行设置。可选值如表。
模式符 | 说明 |
---|---|
g | 用于在目标字符串中实现全局 |
i | 忽略大小写 |
m | 实现多行代码匹配 |
u | 以Unicode编码执行正则表达式 |
y | 粘性匹配,仅匹配目标字符串中此正则表达式的lastIndex属性指示的索引 |
使用
这里以exec()方法和match()方法为例。
- exec()方法用于在目标字符串中搜索匹配,一次仅返回一个匹配结果。
// 获取首次匹配结果
var str = 'AbC123abc456';
var reg = /abc/i; //定义正则对象
reg.exec(str);
//匹配结果:["AbC",index:0,input:"AbC123abc456"]
- String对象中的match()方法除了可在字符串内检索指定的值外,还可以在目标字符串中根据正则匹配出所有符合要求的内容,匹配成功后将其保存在数组中,匹配失败则返回。
var str = "It's is the shorthand of it is";
var reg1 = /it/gi;
str.match(reg1); //匹配结果:(2)[“It”,“it”]
var reg2 = /^it/gi;
str.match(reg2); //匹配结果:[“It”]
var reg3 = /s/gi;
str.match(reg3); //匹配结果:(4)[“s”,“s”,“s”,“s”]
var reg4 = /s$/gi;
str.match(reg4); //匹配结果;["s"]
参考书目:《JavaScript前端开发案例教程》