RegExp构建正则表达式


前言

正则表达式方便对各种数据进行合法性的校验,正则表达式使用简洁语法来创建:
let expression= */ pattern / flags;*每个正则表达式可以带零个或者多个标记。


提示:以下是本篇文章正文内容,下面案例可供参考

一、匹配模式的标记

  1. g:全局模式,表示查找字符串的全部内容,而不是找到第一个匹配的内容就结束查找。
  2. i:在查找匹配是忽略pattern和字符串的大小写。
  3. m:查找到一行文本末尾是会继续查找。
  4. y:只查找从lastIndex开始及之后的字符串。
  5. u:启用Unicode匹配。
  6. 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 ()都是返回其字面量的形式。

提示:本篇文章是作为我在学习过程中的学习心得,如有错误欢迎大佬指出。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值