当前位置: 首页 > 中文手册 > JavaScript RegExp 对象详解

JavaScript RegExp 对象详解

JavaScript中的RegExp对象,就是我们常说的正则表达式对象。该对象主要包含正则表达式模式,以使用正则表达式进行匹配或替换。

所有主流浏览器均支持RegExp对象。更多细节信息请参考JavaScript RegExp对象的属性和方法

语法

RegExp对象(或称之为RegExp()函数),其用法主要有如下两种:

用法一:充当构造函数使用,用于结合new关键字构造一个新的RegExp对象。

new RegExp( pattern [, flags ] )

用法二:当作普通函数使用,其行为与用法一(使用new关键字)完全一致,相当于用法一省略了new关键字。

RegExp( pattern [, flags ] )

用法三:JS还支持以字面值形式创建RegExp对象,其用法如下:

// 一对符号"/"是语法所必需的,一般推荐使用该方式创建正则表达式模式
/pattern/[flags]

参数

请根据前面语法部分所定义的参数名称查找对应的参数。

参数描述
patternString类型指定的正则表达式模式字符串。
flags可选/String类型指定的模式标志,可以为"g"、"i"、"m"之间的任意组合。

参数flags可以赋予当前正则表达式模式一些特性,从而实现特定的功能。该参数可以是以下三个字符的任意组合:

g (global,全局匹配标志)
执行正则表达式匹配或替换时,一般只要搜索到一个符合pattern的文本就停止匹配或替换。使用该标志将搜索所有符合pattern的文本直到文本末尾。
i (ignoreCase,忽略大小写标志)
执行正则表达式匹配或替换时,使用该标志可以忽略大小写。
m (multiline,多行匹配标志)
执行正则表达式匹配或替换时,使用该标志可以让元字符"^"和"$"额外匹配每行的开始位置和结束位置。

返回值

RegExp()函数的返回值是RegExp类型,返回一个新的RegExp对象。

示例&说明

以下是RegExp对象常见用法的示例代码:

// 以下三种方式均可构造新的RegExp对象

// 以下三者是等价的
var regObj1 = new RegExp("\\d{6}"); // (字符串中的转义字符"\"要写成"\\")
var regObj2 = RegExp("\\d{6}");
var regObj3 = /\d{6}/;

// 带有模式标志(g和i)的RegExp对象
var regObj4 = new RegExp("[a-z]{10}", "gi");
var regObj5 = /[a-z]{10}/gi;

在JS中,RegExp对象的数据类型为Object。你可以使用typeof运算符进行查看,其结果是"object"。

var regObj = /\d{6}/;
document.writeln( typeof regObj ); // object
document.writeln( regObj.constructor === RegExp ); // true
document.writeln( regObj instanceof RegExp ); // true
运行代码

请注意带有模式标志的RegExp对象在执行正则表达式匹配或替换时所具有的特性。

var str = "CodePlayer123456abcdefghij456789go";

var regObj1 = new RegExp("\\d{6}");
// 捕获匹配模式\d{6}的第一个匹配的结果数组
document.writeln( regObj1.exec(str) ); // 123456 (这里返回的实际上是一个数组,数组中只有一个元素)


// 将str中所有的连续10个字母替换成"替换"(g表示全部替换,i表示不区分大小写)
document.writeln( str.replace( /[a-z]{10}/gi, "替换" ) ); // 替换123456替换456789go

// 将str中第一个出现的连续10个小写字母替换成"替换"
document.writeln( str.replace( /[a-z]{10}/, "替换" ) ); // CodePlayer123456替换456789go
5 0
我们认为: 用户的主要目的,是为了获取有用的信息,而不是来点击广告的。因此本站将竭力做好内容,并将广告和内容进行分离,确保所有广告不会影响到用户的正常阅读体验。用户仅凭个人意愿和兴趣爱好点击广告。
我们坚信:只有给用户带来价值,用户才会给我们以回报。
CodePlayer技术交流群1CodePlayer技术交流群1

帮朋友打一个硬广告:

P2P网贷系统(Java版本) 新年低价大促销,多年P2P技术积累,系统功能完善(可按需定制,可支持第三方存管、银行存管),架构稳定灵活、性能优异、二次开发快速简单。 另可提供二次开发、安装部署、售后维护、安全培训等一条龙服务。

外行看热闹,内行看门道。可以自信地认为,在系统设计上,比市面上的晓风、迪蒙、方维、绿麻雀、国融信、金和盛等P2P系统要好。
深圳地区支持自带技术人员现场考察源代码、了解主要技术架构,货比三家,再决定是否购买。

也可推荐他人购买,一旦完全成交,推荐人可获得实际售价 10% 的返现。
有意向者,详情请 点击这里 联系,工作时间立即回复。