`

javascript正则表达式多行匹配和RegExp理解

阅读更多

一:多行匹配

很多时候我们可以通过边界符号(^,$,\b,\B)达到我们匹配某些字符串的目的。但是如果字符串有多行呢,这个其实很简单了,只需加个m就指定为多行匹配了。实例:

 

var str = "first second\nthird fourth\nfifth sixth";

var patt = /(\w+)$/gm

console.log(str.match(patt));

结果:

 

["second", "fourth", "sixth"]
如果没有指定m,则只会得到sixth了,加了m后实际上正则表达式是把\n、\r这些也换行和回车当成边界了,可以这么理解

 

 

var str2 = "first second\nthird fourth\nfifth sixth";

var patt2 = /^(\w+)/gm

console.log(str2.match(patt2 ));

 

结果:

 

["first", "third", "fifth"]
没指定m则只能是first了

二:RegExp理解
RegExp有很多属性:
  1.  

    global 表示全局g是否设置

     

  2. ignoreCase 表示i忽略大小是否设置
  3. lastIndex 表示下次匹配将会从哪个位置开始(只有用了test,exec,match这些方法后才会有值,否则为0)
  4. multiline 表示多行m是否设置
  5. source 表示正则表达式的源字符串形式
这些属性基本都不用,因为一看就知道了。可能有点用的是lastIndex这个属性了。我们可以控制这个去匹配我们想要匹配的字符串。
还有一些静态属性:
  1.     
    长名 短名 描述
    input $_ 最后匹配的字符串
    lastMatch $& 最后匹配的字符
    lastParem $+ 最后匹配的分组
    leftContent $` 上次匹配的前面的子串
    rightContent $' 上次匹配的后面的子串

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

实例:

var str = "this has been a short,short summer";

var patt = /(s)hort/g

console.log(str.match(patt));

console.log(RegExp.input);

console.log(RegExp.lastMatch);

console.log(RegExp.lastParen);

console.log(RegExp.leftContext);

console.log(RegExp.rightContext);

当然也可以使用那些短名的

结果:

["short", "short"]
this has been a short,short summer
short
s
this has been a short,
summer
分享到:
评论

相关推荐

    javascript正则表达式和字符串RegExp and String(一)

    正则表达式是javascript非常重要和常用的功能,在jquery等大型框架中用的非常频繁,最近抽时间学习了解了相关知识,记录下来与需要的朋友分享。 思维导图 RegExp(正则表达式)的创建方式 可以通过两种方式创建一个...

    正则表达式

    JavaScript的RegExp对象和String对象定义了使用正则表达式来执行强大的模式匹配和文本检索与替换函数的方法. 在JavaScript中,正则表达式是由一个RegExp对象表示的.当然,可以使用一个RegExp()构造函数来创建RegExp...

    JavaScript正则表达式下之相关方法

    上篇文章给大家介绍了JavaScript 正则表达式上之基本语法介绍了JavaScript正则表达式的语法,有了这些基本知识,可以看看正则表达式在JavaScript的应用了,在一切开始之前,看看RegExp实例的几个属性 RegExp实例...

    正则表达式30分钟入门教程

    • Javascript正则表达式在线测试工具 如果你不觉得正则表达式很难读写的话,要么你是一个天才,要么,你不是地球人。正则表达式的语法很令人头疼,即使对经常使用它的人来说也是如此。由于难于读写,容易出错,...

    java 正则表达式

    function IP2V(ip){re=/(\d+)\.(\d+)\.(\d+)\.(\d+)/g //匹配IP地址的正则表达式if(re.test(ip)){return RegExp.$1*Math.pow(255,3))+RegExp.$2*Math.pow(255,2))+RegExp.$3*255+RegExp.$4*1}else{throw new Error(...

    test-regexp-online:JavaScript正则表达式在线测试器

    在线测试您的Javascript正则表达式 我做了一个小项目,以学习更多有关JavaScript和jQuery的知识。 特征 在键入时测试正则表达式 突出显示匹配结果 显示捕获的组 也允许填写反例 提供给定的一组正则表达式,示例和...

    JavaScript正则表达式之multiline属性的应用

    它指定是否一个特定的正则表达式进行多行匹配,即,不管是否使用“m”属性创建。 语法 RegExpObject.multiline 下面是参数的详细信息: NA 返回值: 如果“m”修改被设置返回“TRUE”,否则返回“FALSE”。 例子...

    javascript正则表达式学习之位置匹配

    正则表达式是匹配模式,要么是匹配字符,要么匹配位置。 其实在开发中很少用到匹配位置,本篇文章主要包含: 二、什么是位置 位置:相邻字符之间的位置。 三、如何匹配位置 在ES5中,共有6个锚:^, $, \b, \B, (?=p...

    浅谈Javascript常用正则表达式应用

    m: 多行匹配 /hello/: 两个反斜杠是正则表达式的字面量表示法 两个测试方法 test const test = new RegExp('hello world', 'ig'); console.log(test.test('hello world')); // true exec 返回的是数组,有就返回...

    RegExp 随笔 JavaScript RegExp 对象

    RegExp 的构造函数创建了一个正则表达式对象,用模式来匹配文本。 有关正则表达式介绍,请阅读JavaScript指南中的正则表达式章节。 语法 文字和构造符号是可能的: /pattern/flags new RegExp(pattern [, flags]) ...

    AutoReplaceHTML-crx插件

    它使用JavaScript正则表达式(RegExp)识别URL并执行搜索和替换操作。 重要提示:由于Chrome仅提供异步消息传递,因此该扩展程序仍在运行时,网页上的脚本可能已经在执行! 换句话说,使用此扩展名修改JavaScript...

    JavaScript引用类型RegExp基本用法详解

    本文实例讲述了JavaScript引用类型RegExp基本用法。分享给大家供大家参考,具体如下: 1、正则表达式定义 三个标志:全局模式g,不区分大小写模式i,多行模式m。 1) 字面量定义 var pattern = /[fe]at/gim; 2) ...

    EditPlus 2整理信箱的工具

    【4】 正则表达式应用——替换带有半角括号的多行 【5】 正则表达式应用——删除空行----------------------------江德华 软件技巧类 ------------------------------------------------------ 【6】 软件技巧——...

    Editplus 3[1].0

    【4】 正则表达式应用——替换带有半角括号的多行 【5】 正则表达式应用——删除空行----------------------------江德华 软件技巧类 ------------------------------------------------------ 【6】 软件技巧——...

    微软JavaScript手册

    lastParen 属性 ($+) 从任意一个正则表达式搜索中返回最后的由括号括起的子匹配(若存在的话)。 lbound 方法 返回在 VBArray 中指定维数所用的最小索引值。 leftContext 属性 ($`) 返回由调用者传递给函数的实际...

    javascript文档

    lastParen 属性 ($+) 从任意一个正则表达式搜索中返回最后的由括号括起的子匹配(若存在的话)。 lbound 方法 返回在 VBArray 中指定维数所用的最小索引值。 leftContext 属性 ($`) 返回由调用者传递给函数的实际...

    《javaScrip开发技术大全》源代码

    • sample29.htm 使用正则表达式匹配要替换的子字符串 • sample30.htm 更多的替换字符串 • sample31.htm 将字符串分割成数组 • sample32.htm 转换大小写 • sample33....

    JavaScript高级教程

    第 1 章 JavaScript 是什么...............................................1 3 1.1 历史简述..............................................1 1.2 JavaScript 实现................................................

Global site tag (gtag.js) - Google Analytics