经典:Javascript match函数用法

2015-6-27 17:21:59 | 浏览:
评论数:0

概述

当字符串匹配到正则表达式(regular expression)时,match() 方法会提取匹配项。

语法

str.match(regexp);

参数

regexp

一个正则表达式对象。如果传入一个非正则表达式对象,则会隐式地使用 new RegExp(obj) 将其转换为正则表达式对象。

返回值

array

一个包含匹配结果的数组,如果没有匹配项,则返回 null

描述

如果正则表达式没有 g 标志,返回和 RegExp.exec(str) 相同的结果。而且返回的数组拥有一个额外的 input 属性,该属性包含原始字符串。另外,还拥有一个 index 属性,该属性表示匹配结果在原字符串中的索引(以0开始)。

如果正则表达式包含 g 标志,则该方法返回一个包含所有匹配结果的数组。如果没有匹配到,则返回 null

参看:RegExp 方法

  • 如果你需要知道一个字符串是否匹配一个正则表达式(RegExp),可使用 RegExp.test(str)
  • 如果你只是需要第一个匹配结果,你可能想要使用 RegExp.exec(str)

示例

例子:使用 match

在下例中,使用 match 查找 "Chapter" 紧跟着 1 个或多个数值字符,再紧跟着一个小数点和数值字符 0 次或多次。正则表达式包含 i 标志,因此大小写会被忽略。

var str = "For more information, see Chapter 3.4.5.1";
var re = /(chapter \d+(\.\d)*)/i;
var found = str.match(re);

console.log(found);

// logs ["Chapter 3.4.5.1", "Chapter 3.4.5.1", ".1"]

// "Chapter 3.4.5.1" is the first match and the first value 
//  remembered from (Chapter \d+(\.\d)*).

// ".1" is the last value remembered from (\.\d).

例子:match 使用全局(global)和忽略大小写(ignore case)标志

下例展示了 match 使用 global 和 ignore case 标志。A-E、a-e 的所有字母将会作为一个数组的元素返回。

var str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
var regexp = /[A-E]/gi;
var matches_array = str.match(regexp);

console.log(matches_array); 
// ['A', 'B', 'C', 'D', 'E', 'a', 'b', 'c', 'd', 'e']

来源:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/String/match

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。