RegExp 正则表达式(regular expression)的缩写

语法:

显式构造函数 var rg= new RegExp(pattern, attributes)

隐式构造函数 var rg= /pattern/attributes

pattern: 字符串

attribute: i, g (i不区分大小写的匹配, g全局匹配,即查询所有匹配项而不是在匹配到第一个后就停止,"gi"不区分大小写且全局检索)可选参数

常用方法说明:

1.test()

string中是否有匹配的字符串,有则返回true,没有返回false

eg:var str = "abc";
     var rg = /b/i;
     console.log(rg.test(str)); //true

2.exec()

检索指定值,有则返回数组,没有则返回null

eg:

var str = "abcb";
var rg = /b/g;
console.log(rg.exec(str)); //["b", index: 1, input: "abcb"]

参数解析:

index:首次匹配内容的开始位置,初始值为-1,从0开始计数,每次成功匹配,都会发生改变

input: 返回当前所作用的字符串,初始值为“”

3.match()

检索指定值,若有匹配项,全局搜索时返回匹配项数组,一般搜索时返回也返回数组,格式与exec结果一样,没有则返回null

eg:

var str = "abcb";
var rg = /b/g;
console.log(str.match(rg)); //["b", "b"]

exec与match功能类似,但依旧有诸多区别:

1.如果正则中有g(全局搜索),match返回所有匹配的结果,而exec返回第一次匹配的结果

2.写法上顺序相反

3.exec返回第一次匹配的位置,匹配内容,所作用的字符串,match返回匹配的内容

4.如果没有g,但是有分组,则两个结果一样。或者没有g也没有分组。只返回第一个匹配

4.search()

返回第一次匹配的位置

eg: var str = "abcb";
       var rg = /b/g;
       console.log(str.search(rg)); //1

5.replace()

替换匹配的字符串并返回新的字符串

eg:

var str = "abcb";
var rg = /b/g;
console.log(str.replace(rg, "1")); //a1c1

全局模式下全部替换,其他情况下替换第一个,原字符串不发生改变!

6.compile()

用于改变正则表达式

语法:rg.compile(regexp, modifier)

regexp新的正则表达式;

modifier新的模式 "g"全局检索; "i"不区分大小写; "gi"不区分大小写且全局检索;

7.split()

将字符串分割为字符串数组

语法:string.split(string/regexpobj, howmany)

可根据字符串或者正则进行分割,howmany选填,用于规定数组大小,为空时全部分割

eg:

var rg=new RegExp("e", "g");   
console.log(("The best things in life are free").split(rg));

//["Th", " b", "st things in lif", " ar", " fr", "", ""]

RegExp方法解析的更多相关文章

  1. Python的方法解析顺序(MRO)[转]

    本文转载自: http://hanjianwei.com/2013/07/25/python-mro/ 对于支持继承的编程语言来说,其方法(属性)可能定义在当前类,也可能来自于基类,所以在方法调用时就 ...

  2. sqlalchemy mark-deleted 和 python 多继承下的方法解析顺序 MRO

    sqlalchemy mark-deleted 和 python 多继承下的方法解析顺序 MRO 今天在弄一个 sqlalchemy 的数据库基类的时候,遇到了跟多继承相关的一个小问题,因此顺便看了一 ...

  3. iOS 详解NSXMLParser方法解析XML数据方法

    前一篇文章已经介绍了如何通过URL从网络上获取xml数据.下面介绍如何将获取到的数据进行解析. 下面先看看xml的数据格式吧! <?xml version="1.0" enc ...

  4. 四种方法解析JSON数据

    (1)使用TouchJSon解析方法:(需导入包:#import "TouchJson/JSON/CJSONDeserializer.h") //使用TouchJson来解析北京的 ...

  5. Method Resolution Order – Python类的方法解析顺序

    在支持多重继承的编程语言中,查找方法具体来自那个类时的基类搜索顺序通常被称为方法解析顺序(Method Resolution Order),简称MRO.(Python中查找其它属性也遵循同一规则.)对 ...

  6. 【Android 多媒体开发】 MediaPlayer 状态机 接口 方法 解析

    作者 : 韩曙亮 转载请著名出处 :  http://blog.csdn.net/shulianghan/article/details/38487967 一. MediaPlayer 状态机 介绍 ...

  7. 2019-2-20C#开发中常用加密解密方法解析

    C#开发中常用加密解密方法解析 一.MD5加密算法 我想这是大家都常听过的算法,可能也用的比较多.那么什么是MD5算法呢?MD5全称是 message-digest algorithm 5[|ˈmes ...

  8. C#中用DateTime的ParseExact方法解析日期时间(excel中使用系统默认的日期格式)

    最近做的项目中服务器是英文的系统,系统需要通过excel的单元格导入日期,excel中的日期格式是系统默认的日期格式,如下图所示 以上日期格式,会跟着操作系统设置的日期格式相同例如我的中文系统的日期格 ...

  9. JSON.parse() 方法解析一个JSON字符串

    JSON.parse() 方法解析一个JSON字符串,构造由字符串描述的JavaScript值或对象.可以提供可选的reviver函数以在返回之前对所得到的对象执行变换. 语法EDIT JSON.pa ...

随机推荐

  1. 该如何将MathType公式粘贴到文档中

    MathType是一款非常好用的数学公式编辑器,因为它与很多的文档处理器都能够很好地兼容,因此其使用范围非常的大.MathType公式编辑器编辑的公式与数学符号等都符号国际期刊的出版标准,并且上手容易 ...

  2. 【转】VC++计算当前时间点间隔N天的时间(不使用CTimeSpan类)

    转自:http://blog.csdn.net/fzuim/article/details/61199351 涉及到有效期的设置,需要计算N天时间间隔的时间.  C++ Code  123456789 ...

  3. 组合使用QT的资源管理高级功能简化开发过程

    使用 QT 进行团队开发的时候,常常碰到一个问题,就是如何共同管理资源?甚至一个人进行开发的时候如何简化资源的维护,避免无谓的消耗? 如果可以做到在开发的时候,大家把美工做的图片(往往是程序员先自己随 ...

  4. CF679C(Bear and Square Grid) 经典好题

    题目链接:传送门 题目大意:给你一个n*n包含".","X"的图,你有一次机会选择一个k*k的子矩阵,将子矩阵全部变为".",问当操作过后, ...

  5. sqli_labs第一关

    安装 从https://github.com/Audi-1/sqli-labs下载源代码 搭建环境用的是phpstudy 编辑sqli\sql-connections\db-creds.inc文件 修 ...

  6. Exchange 2016 系统要求

    Exchange 2016 和早期版本的 Exchange Server 共存方案 Exchange 2016支持混合部署方案 Exchange 2016 的网络和目录服务器要求 目录服务体系结构: ...

  7. 页面的日志服务 web页面渲染 服务 ; 服务耦合带来的问题

    情景: 虽然对web服务做了3节点的负载均衡,但是由于埋点数据的落盘的代码也在相同服务器上,导致当flume处理日志的吞吐量达到瓶颈时,3节点的请求积压,挤占服务器资源,导致接口数据处理迟缓,页面加载 ...

  8. docker,构建nginx反向代理tomcat

    Nginx实现负载均衡是通过配置nginx.conf来实现的,nginx.conf的全部内容如下: user nginx; worker_processes 1; error_log /var/log ...

  9. celery中的生产者消费者问题

    celery中的生产者消费者问题 在task1.py文件中: # demo1:task.py and celery.py in one file# run it byfrom celery impor ...

  10. PBR工作流

    目标是让substance效果和unity效果一致 分2步: 1.完成1个shader,效果和standard完全一致,抛去不需要的功能 2.使用新的shader,在substance里替代原有的渲染 ...