在js中,RegExp正则表达式的定义有两种方式:一种是普通方式,另一种是构造函数方式。无论是那种定义正则表达式的方式,它们都会返回RegExp对象。


普通方式定义正则表达式的格式

语法:

var 变量名 = /正则表达式/附加参数
  • 1

附加参数是用来扩展表达式含义的,目前有三种附加参数。分别是:

g:表达式进行全局匹配
i:匹配时不区分英文的大小写
m:可以进行多行匹配

其中全局匹配(g)是指,匹配字符串时,直到所有字符串全部查找完成才会停止匹配。

而非全局匹配是指,匹配字符串时,有一处匹配成功或查找至字符串的结尾,其中只要有一个条件满足时,就停止匹配。

m表明表达式可以进行多行匹配。但这个参数只有当表达式中使用”^”(以……开头)或”$”(以……结尾)特殊字符时才会起作用,如果表达式中没有”^”或”$”特殊字符时,加不加m参数都不影响匹配的结果。

这三种参数可以随意组合,也可以不加附加参数。默认的定义正则表达式(即不加附加参数)是非全局匹配,区分大小写,单行匹配。

举个栗子
如:

//启用全局匹配,区分大小写,多行匹配)
var reg = /\w/gim;
  • 1
  • 2
//启用默认的附加参数
var reg = /\w/;
  • 1
  • 2

有如下文本:

acbbfff
abccff

如果采用/^a./g,则匹配结果为”ac”;
如果采用/^a./gm,则匹配结果为”ac”和”ab”。
如果采用/^a./m,则匹配结果为”ac”
如果采用/a./gm,则匹配结果为”ac”和”ab”
如果采用/a./g,则匹配结果为”ac”和”ab”
  • 1
  • 2
  • 3
  • 4
  • 5

构造函数方式定义正则表达式的格式

语法:

var 变量名 = new RegExp(“正则表达式”,”附加参数”);
  • 1

var 变量名 = new RegExp(/正则表达式/附加参数);
  • 1

使用方式和普通方式的一样。
如:

var reg = new RegExp(“\w*”,”gim”);
  • 1
var reg = new RegExp(/\w*/gim);
  • 1

总结
以上两种定义正则表达式的区别:
普通的定义方式,表达式必须是一个常量字符串
如:

var reg = /a./gim;
  • 1

而构造函数的定义方式,表达式可以是常量,也可以是变量
如:

var t1 = “a.”;
var reg1 = new RegExp(t1,”gim”); //表达式是变量
var t2 = “a\\w”;
var reg2 = new RegExp(t2,”gim”); //表达式是变量
  • 1
  • 2
  • 3
  • 4

var reg = new RegExp(/a./gim); //表达式是常量
  • 1

附注

  • 无论是普通的正则表达式定义还是构造函数的正则表达式定义,其返回值都是RegExp对象。

  • 如果表达式是变量字符串时,\w,\d这一类匹配字符集的特殊字符,要写成”\\w”,”\\d”这种格式。原因是,字符串在解析时会把”\”符号解析成转义字符,如果要使其解析成”\”字符,就要写成”\\”

RegExp正则表达式(三)–js中正则表达式的定义的更多相关文章

  1. 正则表达式在JS中的使用

    <script type="text/javascript"> /** *正则表达式在js中的第一种使用方式: * RegExp 通过构造器去使用正则表达式 需要对反斜 ...

  2. js课程 4-12 js中正则表达式如何使用

    js课程 4-12 js中正则表达式如何使用 一.总结 一句话总结: 1.js正则表达式手册取哪里找? w3cschool或者菜鸟教程->找到js正则表达式->完整的RegExp参考手册这 ...

  3. js中使用function定义类、实例化,函数的调用方法

    function Test002(name, age){ name, age, this.printInfo = function(){ //定义的公有方法 console.log(name, age ...

  4. js中正则表达式的模式匹配

    参考Javascript权威指南(第6版)第10章 1.正则表达式的定义 正则表达式有两种定义方法,通常使用直接量方式. (1)直接量 var pattern = /\d$/; var pattern ...

  5. js中正则表达式使用

    js中使用正则表达式,除了了解正则表达式基本的匹配规则外.还需要了解下面的基本的知识: python,js,groovy这些脚本语言都有在线调试的网站,可以在线测试是否有语法错误,用起来也很方便. v ...

  6. js中正则表达式的易错点

    文章目录 1. 匹配符部分匹配规则 2. 分组匹配规则: 3. 注意^的不同用法 4. 不要忘记转义 5. 正则表达式对象中lastIndex属性 6. exec VS match 1. 匹配符部分匹 ...

  7. js中正则表达式与Python中正则表达式的区别

    今天女票让我帮她写一个js中的正则,来提取电话号码,对于正则规则来说,js与python是基本没有区别的,重点的区别是在一些函数与方法中. python中的正则提取: import re str = ...

  8. 在js中正则表达式验证小时分钟,将输入的字符串转换为对应的小时和分钟

    文章目录 1.预备知识 2.在js中的代码片段 3.测试结果 1.预备知识 splict()方法 Date()的相关方法 setHours()的用法 2.在js中的代码片段 //验证小时和分钟 var ...

  9. JS中正则表达式

    正则表达式用于对字符串模式匹配及检索替换,是对字符串执行模式匹配的强大工具.简单来说正则表达式就是处理字符串的,我们可以用它来处理一些复杂的字符串. 1.创建方式 pattern(模式):描述了表达式 ...

随机推荐

  1. vector.erase();vector.clear();map.erase();

    vector::erase()返回下一个iter: STL中的源码: //清除[first, last)中的所有元素 iterator erase(iterator first, iterator l ...

  2. sigma网格中水平压力梯度误差及其修正

    1.水平梯度误差产生 sigma坐标系下,笛卡尔坐标内水平梯度项对应形式为 \[\begin{equation} \left. \frac{\partial }{\partial x} \right| ...

  3. R语言与医学统计图形-【13】ggplot2几何对象之盒形图

    ggplot2绘图系统--几何对象之盒形图 参数: geom_boxplot(mapping = , #lower,middle,upper,x,ymax,ymin必须(有默认) #alpha/col ...

  4. EXCEL——排序函数RANK,6种花式使用技巧

    我们在实际工作中,常常把RANK函数用于对一列数据的基本排序,即从大到小的排序方法,那你还知道它的其他什么用法吗? 今天就给大家系统的分享下RANK函数的用法,分享的内容主要为以下这6种技巧. 1.升 ...

  5. QQ空间技术架构之深刻揭秘

    QQ空间技术架构之深刻揭秘 来源: 腾讯大讲堂  发布时间: 2012-05-17 17:24  阅读: 7822 次  推荐: 4   [收藏]   QQ 空间作为腾讯海量互联网服务产品,经过近七年 ...

  6. 【Linux】CentOS下升级Python和Pip版本全自动化py脚本

    [Linux]CentOS下升级Python和Pip版本全自动化py脚本 CentOS7.6自带py2.7和py3.6 想要安装其它版本的话就要自己重新下载和编译py其它版本并且配置环境,主要是软链接 ...

  7. keybd_event模拟键盘按键,mouse_event怎么用

    从 模仿UP主,用Python实现一个弹幕控制的直播间! - 蛮三刀酱 - 博客园 (cnblogs.com) 知道了 PyAutoGUI: * Moving the mouse and clicki ...

  8. Go语言核心36讲(Go语言实战与应用二十三)--学习笔记

    45 | 使用os包中的API (下) 我们在上一篇文章中.从"os.File类型都实现了哪些io包中的接口"这一问题出发,介绍了一系列的相关内容.今天我们继续围绕这一知识点进行扩 ...

  9. flink04 -----1 kafkaSource 2. kafkaSource的偏移量的存储位置 3 将kafka中的数据写入redis中去 4 将kafka中的数据写入mysql中去

    1. kafkaSource 见官方文档 2. kafkaSource的偏移量的存储位置 默认存在kafka的特殊topic中,但也可以设置参数让其不存在kafka的特殊topic中   3   将k ...

  10. 【2021赣网杯web(一)】gwb-web-easypop

    源码分析 <?php error_reporting(0); highlight_file(__FILE__); $pwd=getcwd(); class func { public $mod1 ...