文章目录
前言
正则表达式方便对各种数据进行合法性的校验,正则表达式使用简洁语法来创建:
let expression= */ pattern / flags;*每个正则表达式可以带零个或者多个标记。
提示:以下是本篇文章正文内容,下面案例可供参考
一、匹配模式的标记
- g:全局模式,表示查找字符串的全部内容,而不是找到第一个匹配的内容就结束查找。
- i:在查找匹配是忽略pattern和字符串的大小写。
- m:查找到一行文本末尾是会继续查找。
- y:只查找从lastIndex开始及之后的字符串。
- u:启用Unicode匹配。
- s:表示元字符。
二、正则表达式使用字面量形式定义
let expression = /pattern / flags;
代码如下(示例):
//匹配第一个“cat” 或“bat”,忽略大小写
let patern1 =/[bc]at/i;
//匹配所有以“at”结尾的三字符组合,忽略大小写
let pattern2=/.at/gi;
//匹配所有“.at”,忽略大小写
let pattern3=/\.at/gi;
三、正则表达式使用RegExp构建函数来定义
RegExp构建函数接收两个参数:模式字符串和标记字符串(可选)。
代码如下(示例):
//匹配第一个“cat” 或“bat”,忽略大小写
let patern1 =new RegExp("[bc]at","i");
//匹配所有以“at”结尾的三字符组合,忽略大小写
let pattern2=new RegExp(".at","gi");
//匹配所有“.at”,忽略大小写
let pattern3=new RegExp("\\.at","gi");
RegExp构造函数创建正则表达式的两个参数都是字符串,所有元字符都必须二次转义,包括转义字符序列。例如下列:
字面量模式 | 对应的字符串 |
---|---|
/ \ [bc\ ]at/ | “\ \ [bc\ \ ]at” |
/ \ .at/ | “\ \ .at” |
五、RegExp实例方法
RegExp的主要方法是exec(),只要勇于配合捕获组使用。若找到匹配项,则返回包含第一个匹配信息的数组,若没找到返回null。包含两个额外的属性:index和input。index是字符串中匹配模式的起始位置,input是要查找的字符串。
1.如果没有设置全局标记,则无论对同一字符串调用多少次exec()只返回第一个匹配信息。
let text="cat,bat,sat,fat";
let pattern=/.at/;
let matches=pattern.exec(text);
console.log(matches.index); //0
console.log(matches[0]); //cat
console.log(matches.lastIndex); //0
matches=pattern.exec(text);
console.log(matches.index); //0
console.log(matches[0]); //cat
console.log(matches.lastIndex); //0
2.如果设置全局标记,则每次调用exec()都会返回字符串中的下一个匹配项。lastIndex属性每次都在变化。
let text="cat,bat,sat,fat";
let pattern=/.at/g;
let matches=pattern.exec(text);
console.log(matches.index); //0
console.log(matches[0]); //cat
console.log(matches.lastIndex); //0
matches=pattern.exec(text);
console.log(matches.index); //5
console.log(matches[0]); //bat
console.log(matches.lastIndex); //8
matches=pattern.exec(text);
console.log(matches.index); //10
console.log(matches[0]); //sat
console.log(matches.lastIndex); //13
3.正则表达式的另一个方法是test(),适用于只想测试模式是否匹配,而不需要实际匹配内容的情况。
let text="000-00-0000";
let pattern=/\d{3}-\d{2}-\d{4}/;
if{pattern.test(text)){
console.log("The pattern was matched;");
}
这个用法常用于验证用户输入。
toLocaleStrong()和 toString ()都是返回其字面量的形式。
提示:本篇文章是作为我在学习过程中的学习心得,如有错误欢迎大佬指出。