JavaScript RegExp 正则对象
文章目录
- 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 正则对象相关推荐
- JavaScript RegExp(正则)
第一种方式是直接通过/正则表达式/写出来,第二种方式是通过new RegExp('正则表达式')创建一个RegExp对象. 两种写法是一样的: var re1 = /ABC\-001/; var re ...
- JavaScript RegExp(正则表达式) 对象
正则表达式是描述字符模式的对象.正则表达式用于在文本上执行模式匹配和"搜索和替换"功能. var patt = /JC2182/i 示例说明: /JC2182/i - 是一个正则表 ...
- 判断字符串 正则_(重学前端 - JavaScript(模块一)) 14、引用类型之 RegExp (正则)(详述)...
上一篇文章介绍了 JavaScript 中的 Date 类型,从地理方面的原理知识开始入手,如果大家认真看过上一篇文章,相信 JavaScript 中的 Date 类型已经难不住大家了!!! 但是今天 ...
- 【JS】javascript正则表达式的基本使用(JavaScript RegExp 对象)
javascript正则表达式的基本使用(JavaScript RegExp 对象) 1. 正则表达式是什么? 2. 基本使用语法 2.1 正则表达式思维导图 2.2 定义正则表达式 2.2.1 普通 ...
- JavaScript RegExp 对象
RegExp:是正则表达式的简写 什么是RegExp? 正则表达式描述了字符的模式对象. 当您检索某个文字时,可以用一种模式来描述要检索的内容.RegExp就是这种模式. 简单的模式可以是一个单独的字 ...
- JavaScript正则对象
目录 JavaScript_正则表达式基础 正则执行方法 test() exec() JavaScript_字符串方法 String.prototype.match() String.prototyp ...
- js进阶正则表达式10-分组-多行匹配-正则对象的属性(小括号作用:分组,将小括号里面的东西看成一个整体,因为量词只对前一个字符有效)(多行匹配:m)(属性使用:reg.global)...
js进阶正则表达式10-分组-多行匹配-正则对象的属性(小括号作用:分组,将小括号里面的东西看成一个整体,因为量词只对前一个字符有效)(多行匹配:m)(属性使用:reg.global) 一.总结 1. ...
- JavaScript内置对象(对象/数组/)
文章目录 一. 内置对象 1) 对象 2) Array 数组 1. 创建 2. 特点 3. 属性和方法 4. 二维数组 3)String 对象 1. 创建 2. 特点 3. 属性 4. 方法 4) M ...
- 如何创建和获取正则对象?
在JavaSript应用中,使用正则表达式之前,需要创建正则对象.创建正则表达式的方式有两种,一种是用字面量方式创建,另种是通过RegExp0构造函数的方式创建.这两种方式的语法格式如下. //字面量 ...
最新文章
- 医生们说,AI不会取代我们!
- Asp.Net 上传大文件
- sql server 2008数据复制
- php处理异步请求_PHP实现异步调用方法研究
- oracle rac 通信端口,修改oracle 10g rac监听端口号为1523的步骤
- 如何将自己的站点与Ucenter整合——详解
- JavaScript实现十种经典排序算法(js排序算法)
- JMetro版本11.6.5和8.6.5发布
- Android官方开发文档Training系列课程中文版:动画视图之应用场景
- 切割照片php上传,php下ajax的文件切割上传
- 【算法分析与设计】二分查找平均查找长度的求解
- 我的网页设计(腾讯网页面制作编写)
- leetcode python3 简单题1.Two Sum
- VB:将短文件名格式转成长文件名
- linux 无线 扫描不到网络,在Ubuntu笔记本上搜不到无线信号的解决办法
- nginx 之安全配置
- html 苹果适应,苹果CMS自适应模板(1)
- Failed to execute ‘btoa‘ on ‘Window‘: The string to be encoded contains characters outside of the La
- 海康大华安防网络摄像头Onvif、RTSP网络无插件直播流媒体服务解决方案EasyNVR表单重复提交的优化方案
- 网易云音乐歌单详情列表爬虫破解
热门文章
- 火爆业界的明星,下一代存储技术的先行: NVDIMM 你了解吗?
- python小作业8代码(列表的遍历与嵌套)
- ajax前端分页实现
- 真实收益DeFi崛起 这些DeFi协议已采用它
- PHP网站地图生成类
- HUAWEI 机试题:工厂流水线调度
- excel设定备选值
- 傅连仲主编的《计算机应用基础》,学生教学论文,关于计算机应用基础课程标准研读的必要性相关参考文献资料-免费论文范文...
- 提高数据库查询效率的八个方法
- java license机制dll_(转)使用truelicense实现用于JAVA工程license机制(包括license生成和验证)...