当前位置: 首页 > 中文手册 > JavaScript String.match() 函数详解

JavaScript String.match() 函数详解

match()函数用于使用指定的正则表达式模式在当前字符串中进行匹配查找,并返回数组形式的查找结果。

该函数属于String对象,所有主流浏览器均支持该函数

语法

stringObject.match( regExp )

参数

参数描述
regExpString类型包含正则表达式模式的RegExp对象的实例。也可以是包含正则表达式模式的变量名或字符串。

如果参数regExp不是正则表达式对象(RegExp),而是字符串类型,则match()先将该字符串传递给RegExp的构造函数,将其转换为一个RegExp对象。

返回值

match()方法的返回值为Array类型,其返回数组的成员取决于指定的正则表达式模式是否设有全局标志g

1、如果参数regExp没有全局标志g,则match()函数只查找第一个匹配,并返回包含查找结果的数组,该数组对象包含如下成员:

  • 索引0:存放第一个匹配的子字符串。
  • 属性index:匹配文本在字符串中的起始索引位置。
  • 属性input:整个字符串对象(stringObject)。

IE 6 ~ IE 8 中,该数组还具有额外的lastIndex属性,用于存储匹配文本最后一个字符的下一个位置。

2、如果参数regExp设有全局标志g,则match()函数会查找所有的匹配,返回的数组不再有indexinput属性,其中的数组元素就是所有匹配到的子字符串,形如:

  • 索引0:存放第一个匹配的子字符串(如果存在的话)。
  • 索引1:存放第二个匹配的子字符串(如果存在的话)。
  • ……
  • 索引N-1:存放第N个匹配的字符串(如果存在的话)。

match()函数如果没有查找到任何匹配,则返回null

示例&说明

// 遍历数组对象的所有成员
function printArray(array){
	if(array != null){
		for(var i in array){
			document.writeln( i + "=" + array[i] + "<br>" );
		}
	}else{
		document.write(null + "<br>");
	}	
}

var str = "Code123Player34Code456 http://www.365mini.com";
// 不带g的正则表达式(查找第一个2位数字)
printArray( str.match(/\d{2}/) );
/*
0=12
index=4
input=Code123Player34Code456 http://www.365mini.com
*/

// 该字符串等同于上一个正则表达式
printArray( str.match("\\d{2}") );
/*
0=12
index=4
input=Code123Player34Code456 http://www.365mini.com
*/

// 查找不到匹配返回null
printArray( str.match(/James/) );
// null

// 带全局标志g的正则表达式(搜索所有的两位数字)
printArray( str.match(/\d{2}/g) );
/*
0=12
1=34
2=45
3=36
*/

// 带全局标志g,但查找不到匹配,也返回null
printArray( str.match(/CodePlayer/g) ); // null

运行代码

8 1
我们认为: 用户的主要目的,是为了获取有用的信息,而不是来点击广告的。因此本站将竭力做好内容,并将广告和内容进行分离,确保所有广告不会影响到用户的正常阅读体验。用户仅凭个人意愿和兴趣爱好点击广告。
我们坚信:只有给用户带来价值,用户才会给我们以回报。
CodePlayer技术交流群1CodePlayer技术交流群1

帮朋友打一个硬广告:

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

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

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