match()方法及exec()方法

match 方法 (String) (JavaScript)

将字符串与正则表达式匹配,并返回一个包含该搜索结果的数组。

stringObj.match(rgExp) 

stringObj

必需。执行搜索的 String 对象或字符串文本。

rgExp

必需。包含正则表达式模式和适用标志的正则表达式对象。这也可以是包含正则表达式模式和标志的变量名或字符串。

如果 match 方法没有找到匹配,将返回 null如果找到匹配,则 match 方法返回一个数组,并将更新全局 RegExp 对象的属性以反映匹配结果。

如果没有设置全局标志 (g),数组元素 0 包含整个匹配,而元素 1 到 n 包含任何一个子匹配。此行为与未设置全局标志时exec()方法 的行为相同。如果设置了全局标志,则元素 0 到元素 n 包含所有出现的匹配。

如果未设置全局标志,则 match 方法返回的数组有两个特性:inputindex input 属性包含整个被搜索的字符串。 index 属性包含了在整个被搜索字符串中匹配的子字符串的位置。

如果设置了标志 i,则搜索不区分大小写。

下面的示例演示 match 方法的用法。

JavaScript
var src = "azcafAJAC";

var re = /[a-c]/;

var result = src.match(re);

// The entire match is in array element 0.
document.write(result[0] + "<br/>");

// Now try the same match with the global flag.
var reg = /[a-c]/g;
result = src.match(reg);


// The matches are in elements 0 through n.
for (var index = 0; index < result.length; index++)
{
    document.write ("submatch " + index + ": " +  result[index]);
    document.write("<br />");
}

exec 方法(正则表达式)(JavaScript)  

使用正则表达式模式对字符串执行搜索,并返回一个包含该搜索结果的数组

语法:

rgExp.exec(str) 
参数
rgExp

必需。包含正则表达式模式和适用标志的 Regular Expression 对象的实例。

str

必需。对其执行搜索的 String 对象或字符串文本。

如果 exec 方法没有找到匹配,将返回 null。如果找到匹配项,则 exec 方法返回一个数组,并将更新全局 RegExp 对象的属性以反映匹配结果。数组元素 0 包含了完整的匹配项,而元素 1 到 n 包含的是匹配项中出现的任意一个子匹配项。这相当于没有设置全局标志 (g) 的 match 方法的行为。

如果为正则表达式设置了全局标志,则 exec 从 lastIndex 值指示的位置开始搜索字符串。如果没有设置全局标志,则 exec 忽略 lastIndex 的值,从字符串的起始位置开始搜索。

exec 方法返回的数组有三个属性:input、index 和 lastIndex。input 属性包含整个被搜索的字符串。 index 属性包含了在整个被搜索字符串中匹配的子字符串的位置。 lastIndex 属性中包含了匹配中最后一个字符的下一个位置。

下面的示例阐释了 exec 方法的用法:

function RegExpTest()
{
   var ver = Number(ScriptEngineMajorVersion() + "." + ScriptEngineMinorVersion())
   if (ver < 5.5)
   {
      document.write("You need a newer version of JavaScript for this to work");
      return;
   }

   var src = "The quick brown fox jumps over the lazy dog.";

   // Create regular expression pattern with a global flag.
   var re = /\w+/g;

   // Get the next word, starting at the position of lastindex.
   var arr;
   while ((arr = re.exec(src)) != null)
      {
      // New line:
      document.write ("<br />");  
      document.write (arr.index + "-" + arr.lastIndex + " ");
      document.write (arr[0]);
      }
}
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值