当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


JavaScript String match()用法及代码示例


在本教程中,我们将借助示例了解 JavaScript 字符串 match() 方法。

match() 方法返回将字符串与正则表达式匹配的结果。

示例

const message = "JavaScript is a fun programming language.";

// regular expression that checks if message contains 'programming'
const exp = /programming/;

// check if exp is present in message
let result = message.match(exp);
console.log(result);

/*
Output: [
  'programming',
  index: 20,
  input: 'JavaScript is a fun programming language.',
  groups: undefined
  ]
*/

match() 语法

用法:

str.match(regexp)

在这里,str 是一个字符串。

参数:

match() 方法包含:

  • regexp - 正则表达式对象(如果参数是非 RegExp 对象,则参数隐式转换为 RegExp)

注意:如果你不给任何参数,match()返回[""].

返回:

  • 返回一个包含匹配项的 Array,每个匹配项对应一项。
  • 如果未找到匹配项,则返回 null

示例 1:使用 match()

const string = "I am learning JavaScript not Java.";
const re = /Java/;

let result = string.match(re);
console.log("Result of matching /Java/ :");
console.log(result);

const re1 = /Java/g;
let result1 = string.match(re1);

console.log("Result of matching /Java/ with g flag:")
console.log(result1);

输出

Result of matching /Java/ :
[
  'Java',
  index: 14,
  input: 'I am learning JavaScript not Java.',
  groups: undefined
]
Result of matching /Java/ with g flag:
[ 'Java', 'Java' ]

在这里,我们可以看到,如果不使用g 标志,我们只会得到第一个匹配结果,但包含索引、输入和组等详细信息。

注意: 如果正则表达式不包含g旗帜,str.match()将只返回第一个匹配类似于RegExp.exec().返回的项目还将具有以下附加属性:

  • groups - 命名捕获组的对象,其键作为名称,值作为捕获的匹配项。
  • index - 找到结果的搜索索引。
  • input - 搜索字符串的副本。

示例 2:匹配字符串中的部分

const string = "My name is Albert. YOUR NAME is Soyuj.";

// expression matches case-insensitive "name is"+ any alphabets till period (.)
const re = /name\sis\s[a-zA-Z]+\./gi;

let result = string.match(re);
console.log(result); // [ 'name is Albert.', 'NAME is Soyuj.' ]

// using named capturing groups
const re1 = /name\sis\s(?<name>[a-zA-Z]+)\./i;
let found = string.match(re1);

console.log(found.groups); // {name: "Albert"}

输出

[ 'name is Albert.', 'NAME is Soyuj.' ]
{name: "Albert"}

在这里,我们使用了正则表达式来匹配字符串的某个部分。我们还可以使用如上所示的语法在匹配中捕获某些组。

相关用法


注:本文由纯净天空筛选整理自 Javascript String match()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。