5.4 RegExp 类型

实例

g全局 i不区分大小写 m多行

var pattern1 = /[bc]at/i

var pattern2 = new RegExp("[bc]at", "i");

5.4.1 RegExp 实例属性(global,ignoreCase, lastIndex, multiline, source)

global: 布尔,是否设置了g

ignoreCase 布尔,是否设置了i

lastIndex 整数,匹配的字符位置

multiline 布尔,是否设置了m

source 字符串标识,按照字面量形式返回

var pattern1 = /\[bc\]at/i
l(pattern1.global);//false
l(pattern1.ignoreCase);//true
l(pattern1.multiline);//false
l(pattern1.lastIndex);//0
l(pattern1.source);//\[bc\]at var pattern1 = new RegExp('\\[bc\\]at', 'i')
l(pattern1.global);//false
l(pattern1.ignoreCase);//true
l(pattern1.multiline);//false
l(pattern1.lastIndex);//0
l(pattern1.source);//\[bc\]at

5.4.2 RegExp 实例方法(exec(), test())

exec: 接受一个参数,返回应用模式的字符串 index:位置 input:正则表达式字符串

test: 接受一个字符串,匹配返回true,不匹配返回false

var text = 'mom and dad and baby';
var pattern = /mom( and dad( and baby)?)?/gi;
var matches = pattern.exec(text);
l(matches);
l(matches.index);//0
l(matches.input);//mom and dad and baby
l(matches[0]);//mom and dad and baby
l(matches[1]);// and dad and baby
l(matches[2]);// and baby var text = "cat,bat,sat,fat";
var pattern1 = /.at/;
var matches = pattern1.exec(text);
l(matches.index);//0
l(matches[0]);//cat
l(pattern1.lastIndex);//0 matches = pattern1.exec(text);
l(matches.index);//0
l(matches[0]);//cat
l(pattern1.lastIndex);//0 var pattern2 = /.at/g;
matches = pattern2.exec(text);
l(matches.index);//0
l(matches[0]);//cat
l(pattern2.lastIndex);//3 matches = pattern2.exec(text);
l(matches.index);//4
l(matches[0]);//cat
l(pattern2.lastIndex);//7
var text = "000-00-0000";
var pattern = /\d{3}-\d{2}-\d{4}/;
if(pattern.test(text)){
l('matches');//matches
} var pattern = new RegExp("\\[bc\\]at", "gi");
alert(pattern.toString());///\[bc\]at/gi
alert(pattern.toLocaleString());///\[bc\]at/gi

5.4.3 RegExp 构造函数属性(input,lastMatch,lastParen,leftContext,multiline,rightContext)

input($_):最近一次要匹配的字符串

lastMatch($&): 最近一次匹配项

lastParen($+): 最近一次匹配的捕获组

leftContext($`): input字符串中的lastMatch以前的文本

multiline($*): 布尔值,表示是否所以表达式都使用多行模式

rightContext($') input字符串中的lastMatch之后的文本

var text = "this has been a short summer";
var pattern = /(.)hort/g;
if(pattern.test(text)){
l(RegExp.input);//this has been a short summer
l(RegExp.leftContext);//this has been a
l(RegExp.rightContext);// summer
l(RegExp.lastMatch);//short
l(RegExp.lastParen);//s
l(RegExp.multiline);//false
}

$1,$2,$3

var text = "this has been a short summer";
var pattern = /(..)or(.)/g;
if(pattern.test(text)){
l(RegExp.$1);//sh
l(RegExp.$2);//t
}

5.4 RegExp的更多相关文章

  1. JavaScript RegExp 基础详谈

    前言: 正则对于一个码农来说是最基础的了,而且在博客园中,发表关于讲解正则表达式的技术文章,更是数不胜数,各有各的优点,但是就是这种很基础的东西,如果我们不去真正仔细研究.学习.掌握,而是抱着需要的时 ...

  2. javascript正则表达式(RegExp)简述

    首先我们来思考以下两个个场景 我们使用window操作系统,有时候需要找一个文件,刚刚好这个文件我不知道放哪里去了,这个时候我们该怎么办呢? 我们使用word写论文的时候,不小心将"订价&q ...

  3. 正则-RegExp()构造函数

    上次写了js正则的字面量声明,今天说说RegExp()构造函数声明: var p=/cat/g;   //字面量声明var p=new RegExp('cat','g') //构造函数声明 它两所表达 ...

  4. REGEXP 正则的实现两个字符串组的匹配。(regexp)

    主要懂3个mysql的方法:replace[替换]   regexp[正则匹配]    concat[连接]   由于某些原因,有时候我们没有按照范式的设计准则而把一些属性放到同一个字符串字段中.比如 ...

  5. 引用类型-RegExp类型

    JavaScript高级程序设计(第三版)笔记-第五章-RegExp类型 定义正则表达式有两种方式 1.用字面量形式定义正则表达式: ver expression = /patterns/flags; ...

  6. 原生JS:RegExp对象详解

    @import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/c ...

  7. javascript类型系统——正则表达式RegExp类型

    × 目录 [1]对象 [2]实例属性 [3]静态属性[4]实例方法 前面的话 前面已经介绍过javascript中正则表达式的基础语法.javascript的RegExp类表示正则表达式,String ...

  8. RegExp类型exec()方法的返回值说明

    之前看别人写的插件经常会用到RegExp对象来验证输入,并且获取一些那时我并不晓得是什么东西的数组,来取值进行自定义的逻辑处理.今天学习了一下RegExp类型.终于有了一个初步的了解,至少不会看一会就 ...

  9. RegExp 对象 (JavaScript)

    $1...$9 属性 (RegExp) (JavaScript) 返回在模式匹配期间找到的,所存储的最近的九个部分.只读. 语法         RegExp.$n 参数     RegExp 始终为 ...

  10. RegExp

    var str = "1a1b1c";var reg = new RegExp("1(.)", "g");alert(reg.test(st ...

随机推荐

  1. Vue3 学习-初识体验-helloworld

    在数据分析中有一个最重要的一环就是数据可视化, 数据报表的开发. 从我从业这几年的经历上看, 经历了从业务系统导表格数据, 到Excel+PPT, 再是开源报表工具, 再是主流商业BI产品(低/零代码 ...

  2. CentOS安装SFTP

    1.创建专用用户组 sudo groupadd sftpgroup # 创建组用于统一管理SFTP用户[1,6](@ref) 2.​添加用户并限制Shell sudo useradd -m -d /d ...

  3. 端到端自动驾驶系统实战指南:从Comma.ai架构到PyTorch部署

    引言:端到端自动驾驶的技术革命 在自动驾驶技术演进历程中,端到端(End-to-End)架构正引领新一轮技术革命.不同于传统分模块处理感知.规划.控制的方案,端到端系统通过深度神经网络直接建立传感器原 ...

  4. python正则表达式中re.M,re.S,re.I的作用

    参考:https://www.cnblogs.com/feifeifeisir/p/10627474.html 正则表达式可以包含一些可选标志修饰符来控制匹配的模式.修饰符被指定为一个可选的标志.多个 ...

  5. C#交换方法指针

    被引用的dll是testDllFr.dll,其代码为: namespace testDLLFr { public class TestA { public static void TestAM() { ...

  6. Nmap 从入门到精通:详细指南

    Nmap 从入门到精通:详细指南 1. Nmap 是什么? Nmap(Network Mapper)是一款开源的网络探测和安全审计工具,广泛用于以下场景: 主机发现:识别网络中的活动设备. 端口扫描: ...

  7. 浅谈Java异常处理机制

    前言   在 Java 中,异常被当作对象来处理,所有的异常都有一个共同的祖先java.lang.Throwable类.Throwable有两个重要的子类Exception(异常) 和 Error(错 ...

  8. 代码随想录第十天 | 栈与队列part02

      第五章 栈与队列part02 150. 逆波兰表达式求值 本题不难,但第一次做的话,会很难想到,所以先看视频,了解思路再去做题 题目链接/文章讲解/视频讲解:https://programmerc ...

  9. 如何在FastAPI中轻松实现OAuth2认证并保护你的API?

    title: 如何在FastAPI中轻松实现OAuth2认证并保护你的API? date: 2025/06/09 05:16:05 updated: 2025/06/09 05:16:05 autho ...

  10. 复制REUSE_ALV_GRID_DISPLAY_LVC,给函数添加简易的F4处理能力

    翻遍REUSE_ALV_GRID_DISPLAY_LVC这个函数我们可以发现,这个函数里预定义了一些事件类型. 不过也缺少了一些类型,看看SLIS这个类型池就可以发现,ONF4事件是没有的. 为了把这 ...