match 方法 (String) (JavaScript)
将字符串与正则表达式匹配,并返回一个包含该搜索结果的数组。
stringObj.match(rgExp)
-
stringObj
-
必需。执行搜索的 String 对象或字符串文本。
rgExp
-
必需。包含正则表达式模式和适用标志的正则表达式对象。这也可以是包含正则表达式模式和标志的变量名或字符串。
如果 match 方法没有找到匹配,将返回 null。如果找到匹配,则 match 方法返回一个数组,并将更新全局 RegExp 对象的属性以反映匹配结果。
如果没有设置全局标志 (g),数组元素 0 包含整个匹配,而元素 1 到 n 包含任何一个子匹配。此行为与未设置全局标志时exec()方法 的行为相同。如果设置了全局标志,则元素 0 到元素 n 包含所有出现的匹配。
如果未设置全局标志,则 match 方法返回的数组有两个特性:input 和 index。 input 属性包含整个被搜索的字符串。 index 属性包含了在整个被搜索字符串中匹配的子字符串的位置。
如果设置了标志 i,则搜索不区分大小写。
下面的示例演示 match 方法的用法。
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
- str
必需。包含正则表达式模式和适用标志的 Regular Expression 对象的实例。
必需。对其执行搜索的 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]); } }