文章目录

  • JavaScript RegExp 正则对象
    • RegExp 对象
    • 修饰符
    • test()
    • exec()
    • 方括号
    • 元字符
    • 量词
    • RegExp 对象方法
    • 支持正则表达式的 String 对象的方法

JavaScript RegExp 正则对象


RegExp:是正则表达式(regular expression)的简写。

RegExp 对象

正则表达式是描述字符模式的对象。

正则表达式用于对字符串模式匹配及检索替换,是对字符串执行模式匹配的强大工具。

语法

var patt=new RegExp(pattern,modifiers);

或者更简单的方式:

var patt=/pattern/modifiers;
  • pattern(模式) 描述了表达式的模式
  • modifiers(修饰符) 用于指定全局匹配、区分大小写的匹配和多行匹配

注意:当使用构造函数创造正则对象时,需要常规的字符转义规则(在前面加反斜杠 \)。比如,以下是等价的:

var re = new RegExp("\\w+");
var re = /\w+/;

修饰符

修饰符用于执行区分大小写和全局匹配:

修饰符 描述
i 执行对大小写不敏感的匹配。
g 执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)。
m 执行多行匹配。

实例 1

在字符串中不区分大小写找"runoob"

var str = "Visit RUnoob"; var patt1 = /runoob/i;
以下标记的文本是获得的匹配的表达式:
Visit RUnoob

实例 2

全文查找 “is”

var str="Is this all there is?"; var patt1=/is/g;
以下标记的文本是获得的匹配的表达式:
Is this all there is?

实例 3

全文查找和不区分大小写搜索 “is”

var str="Is this all there is?"; var patt1=/is/gi;
以下 标记的文本是获得的匹配的表达式:
Is this all there is?

test()

test()方法搜索字符串指定的值,根据结果并返回真或假。

下面的示例是从字符串中搜索字符 “e” :

实例

var patt1=new RegExp("e"); document.write(patt1.test("The best things in life are free"));
由于该字符串中存在字母 "e",以上代码的输出将是:
true

当使用构造函数创造正则对象时,需要常规的字符转义规则(在前面加反斜杠 \)

实例

var re = new RegExp("\\w+");

exec()

exec() 方法检索字符串中的指定值。返回值是被找到的值。如果没有发现匹配,则返回 null。

下面的示例是从字符串中搜索字符 “e” :

实例

var patt1 = new RegExp("e");
document.write(patt1.exec("The best things in life are free"));
由于该字符串中存在字母"e",以上代码的输出将是:e

方括号

方括号用于查找某个范围内的字符:

表达式 描述
[abc] 查找方括号之间的任何字符。
[^abc] 查找任何不在方括号之间的字符。
[0-9] 查找任何从 0 至 9 的数字。
[a-z] 查找任何从小写 a 到小写 z 的字符。
[A-Z] 查找任何从大写 A 到大写 Z 的字符。
[A-z] 查找任何从大写 A 到小写 z 的字符。
[adgk] 查找给定集合内的任何字符。
[^adgk] 查找给定集合外的任何字符。
(red|blue|green) 查找任何指定的选项。

元字符

元字符(Metacharacter)是拥有特殊含义的字符:

元字符 描述
. 查找单个字符,除了换行和行结束符。
\w 查找单词字符。
\W 查找非单词字符。
\d 查找数字。
\D 查找非数字字符。
\s 查找空白字符。
\S 查找非空白字符。
\b 匹配单词边界。
\B 匹配非单词边界。
\0 查找 NULL 字符。
\n 查找换行符。
\f 查找换页符。
\r 查找回车符。
\t 查找制表符。
\v 查找垂直制表符。
\xxx 查找以八进制数 xxx 规定的字符。
\xdd 查找以十六进制数 dd 规定的字符。
\uxxxx 查找以十六进制数 xxxx 规定的 Unicode 字符。

量词

量词 描述
n+ 匹配任何包含至少一个 n 的字符串。
例如,/a+/ 匹配 “candy” 中的 “a”,“caaaaaaandy” 中所有的 “a”。
n* 匹配任何包含零个或多个 n 的字符串。
例如,/bo*/ 匹配 “A ghost booooed” 中的 “boooo”,“A bird warbled” 中的 “b”,但是不匹配 “A goat grunted”。
n? 匹配任何包含零个或一个 n 的字符串。
例如,/e?le?/ 匹配 “angel” 中的 “el”,“angle” 中的 “le”。
n{X} 匹配包含 X 个 n 的序列的字符串。
例如,/a{2}/ 不匹配 “candy,” 中的 “a”,但是匹配 “caandy,” 中的两个 “a”,且匹配 “caaandy.” 中的前两个 “a”。
n{X,} X 是一个正整数。前面的模式 n 连续出现至少 X 次时匹配。
例如,/a{2,}/ 不匹配 “candy” 中的 “a”,但是匹配 “caandy” 和 “caaaaaaandy.” 中所有的 “a”。
n{X,Y} X 和 Y 为正整数。前面的模式 n 连续出现至少 X 次,至多 Y 次时匹配。
例如,/a{1,3}/ 不匹配 “cndy”,匹配 “candy,” 中的 “a”,“caandy,” 中的两个 “a”,匹配 “caaaaaaandy” 中的前面三个 “a”。注意,当匹配 “caaaaaaandy” 时,即使原始字符串拥有更多的 “a”,匹配项也是 “aaa”。
n{X,} 匹配包含至少 X 个 n 的序列的字符串。
n$ 匹配任何结尾为 n 的字符串。
^n 匹配任何开头为 n 的字符串。
?=n 匹配任何其后紧接指定字符串 n 的字符串。
?!n 匹配任何其后没有紧接指定字符串 n 的字符串。

RegExp 对象方法

方法 描述 FF IE
compile 编译正则表达式。 1 4
exec 检索字符串中指定的值。返回找到的值,并确定其位置。 1 4
test 检索字符串中指定的值。返回 true 或 false。 1 4

支持正则表达式的 String 对象的方法

方法 描述 FF IE
search 检索与正则表达式相匹配的值。 1 4
match 找到一个或多个正则表达式的匹配。 1 4
replace 替换与正则表达式匹配的子串。 1 4
split 把字符串分割为字符串数组。 1 4

JavaScript RegExp 正则对象相关推荐

  1. JavaScript RegExp(正则)

    第一种方式是直接通过/正则表达式/写出来,第二种方式是通过new RegExp('正则表达式')创建一个RegExp对象. 两种写法是一样的: var re1 = /ABC\-001/; var re ...

  2. JavaScript RegExp(正则表达式) 对象

    正则表达式是描述字符模式的对象.正则表达式用于在文本上执行模式匹配和"搜索和替换"功能. var patt = /JC2182/i 示例说明: /JC2182/i - 是一个正则表 ...

  3. 判断字符串 正则_(重学前端 - JavaScript(模块一)) 14、引用类型之 RegExp (正则)(详述)...

    上一篇文章介绍了 JavaScript 中的 Date 类型,从地理方面的原理知识开始入手,如果大家认真看过上一篇文章,相信 JavaScript 中的 Date 类型已经难不住大家了!!! 但是今天 ...

  4. 【JS】javascript正则表达式的基本使用(JavaScript RegExp 对象)

    javascript正则表达式的基本使用(JavaScript RegExp 对象) 1. 正则表达式是什么? 2. 基本使用语法 2.1 正则表达式思维导图 2.2 定义正则表达式 2.2.1 普通 ...

  5. JavaScript RegExp 对象

    RegExp:是正则表达式的简写 什么是RegExp? 正则表达式描述了字符的模式对象. 当您检索某个文字时,可以用一种模式来描述要检索的内容.RegExp就是这种模式. 简单的模式可以是一个单独的字 ...

  6. JavaScript正则对象

    目录 JavaScript_正则表达式基础 正则执行方法 test() exec() JavaScript_字符串方法 String.prototype.match() String.prototyp ...

  7. js进阶正则表达式10-分组-多行匹配-正则对象的属性(小括号作用:分组,将小括号里面的东西看成一个整体,因为量词只对前一个字符有效)(多行匹配:m)(属性使用:reg.global)...

    js进阶正则表达式10-分组-多行匹配-正则对象的属性(小括号作用:分组,将小括号里面的东西看成一个整体,因为量词只对前一个字符有效)(多行匹配:m)(属性使用:reg.global) 一.总结 1. ...

  8. JavaScript内置对象(对象/数组/)

    文章目录 一. 内置对象 1) 对象 2) Array 数组 1. 创建 2. 特点 3. 属性和方法 4. 二维数组 3)String 对象 1. 创建 2. 特点 3. 属性 4. 方法 4) M ...

  9. 如何创建和获取正则对象?

    在JavaSript应用中,使用正则表达式之前,需要创建正则对象.创建正则表达式的方式有两种,一种是用字面量方式创建,另种是通过RegExp0构造函数的方式创建.这两种方式的语法格式如下. //字面量 ...

最新文章

  1. 医生们说,AI不会取代我们!
  2. Asp.Net 上传大文件
  3. sql server 2008数据复制
  4. php处理异步请求_PHP实现异步调用方法研究
  5. oracle rac 通信端口,修改oracle 10g rac监听端口号为1523的步骤
  6. 如何将自己的站点与Ucenter整合——详解
  7. JavaScript实现十种经典排序算法(js排序算法)
  8. JMetro版本11.6.5和8.6.5发布
  9. Android官方开发文档Training系列课程中文版:动画视图之应用场景
  10. 切割照片php上传,php下ajax的文件切割上传
  11. 【算法分析与设计】二分查找平均查找长度的求解
  12. 我的网页设计(腾讯网页面制作编写)
  13. leetcode python3 简单题1.Two Sum
  14. VB:将短文件名格式转成长文件名
  15. linux 无线 扫描不到网络,在Ubuntu笔记本上搜不到无线信号的解决办法
  16. nginx 之安全配置
  17. html 苹果适应,苹果CMS自适应模板(1)
  18. Failed to execute ‘btoa‘ on ‘Window‘: The string to be encoded contains characters outside of the La
  19. 海康大华安防网络摄像头Onvif、RTSP网络无插件直播流媒体服务解决方案EasyNVR表单重复提交的优化方案
  20. 网易云音乐歌单详情列表爬虫破解

热门文章

  1. 火爆业界的明星,下一代存储技术的先行: NVDIMM 你了解吗?
  2. python小作业8代码(列表的遍历与嵌套)
  3. ajax前端分页实现
  4. 真实收益DeFi崛起 这些DeFi协议已采用它
  5. PHP网站地图生成类
  6. HUAWEI 机试题:工厂流水线调度
  7. excel设定备选值
  8. 傅连仲主编的《计算机应用基础》,学生教学论文,关于计算机应用基础课程标准研读的必要性相关参考文献资料-免费论文范文...
  9. 提高数据库查询效率的八个方法
  10. java license机制dll_(转)使用truelicense实现用于JAVA工程license机制(包括license生成和验证)...