String.prototype.match(str|regexp)内部其实使用了RegExp.prototype.exec方法。
首先根据传入的参数分别创建一个RegExp对象和String对象,然后调用RegExp.exec(String);
使用match时有时需要注意group ()和 flag /g的结合使用时的处理:
例1:
var r, re; // 声明变量。
var s2 = "The rain in Spain falls mainly in the plain";
re = /(a)((i)(n))/i; // 创建正则表达式模式。
r = s2.match(re); // 尝试去匹配搜索字符串。
alert(r);
返回的结果是:“ain,a,in,i,n”;
返回的是 rain中的ain,(a)((i)(n))是第一个分组,由于内部分组存在,第二个分组是a 第三个是in,第四个是i,第五个是n,match以数组的形式返回这个分组,而不会继续去匹配字符串
如果是下面的用法,例2:
var r, re; // 声明变量。
var s2 = "The rain in Spain falls mainly in the plain";
re = /ain/ig; // 创建正则表达式模式。
r = s2.match(re); // 尝试去匹配搜索字符串。
alert(r);
返回的结果是:“ain,ain,ain,ain”
再如果是,例3:
var r, re; // 声明变量。
var s2 = "The rain in Spain falls mainly in the plain";
re = /(a)((i)(n))/ig; // 创建正则表达式模式。
r = s2.match(re); // 尝试去匹配搜索字符串。
alert(r);
返回的结果是:“ain,ain,ain,ain”
总结:
1.如果使用了标识 \g时,将忽略group 分组,再全局里面进行匹配。如例 2、3
2.没有使用 标识 \g时,如果存在匹配,将对匹配的第一个返回进行分组,并再结果中返回分组结果,如例1.
分享到:
相关推荐
string.prototype.matchall 用于String.prototype.matchAll的ES Proposal规范填充程序。 如果不可用或不String.prototype.matchAll则调用其“ shim”方法对String.prototype.matchAll进行填充。 该软件包实现了...
String.prototype.padStart 符合ES2017规范的String.prototype.padStart填充程序。 如果不可用,请调用其“ shim”方法对String.prototype.padStart进行填充。 该软件包实现了接口。 它可以在ES3支持的环境中工作...
string.prototype.replaceall 用于String.prototype.replaceAll的ES Proposal规范填充程序。 如果不可用或不String.prototype.replaceAll调用其“ shim”方法对String.prototype.replaceAll进行填充。 该软件包...
String.prototype.trimEnd 符合ES2019规范的String.prototype.trimEnd填充程序。 如果不可用,则调用其“ shim”方法对String.prototype.trimEnd进行填充。 该软件包实现了接口。 它可以在ES3支持的环境中工作并...
String.prototype.trim 符合ES5规范的String.prototype.trim填充程序。 如果不可用,请调用其“ shim”方法对String.prototype.trim进行填充。 该软件包实现了接口。 它可以在ES3支持的环境中工作,并符合规范( ...
String.prototype.padEnd 符合ES2017规范的String.prototype.padEnd填充程序。 如果不可用,则调用其“ shim”方法对String.prototype.padEnd进行填充。 该软件包实现了接口。 它可以在ES3支持的环境中工作并符合。 ...
1、题外话,有关概念理解:String.prototype 属性表示 String原型对象。所有 String 的实例都继承自 String.prototype. 任何String.prototype上的改变都会影响到所有的 String 实例。 2、上正文,js扩展String....
C语言头文件 STRING.HC语言头文件 STRING.HC语言头文件 STRING.HC语言头文件 STRING.HC语言头文件 STRING.HC语言头文件 STRING.HC语言头文件 STRING.HC语言头文件 STRING.HC语言头文件 STRING.HC语言头文件 STRING....
String.prototype.trimStart 符合ES2019规范的String.prototype.trimStart填充程序。 如果不可用,请调用其“ shim”方法对String.prototype.trimStart进行填充。 该软件包实现了接口。 它可以在ES3支持的环境中工作...
根据给定文件中的代码示例,我们可以看到作者通过扩展`String.prototype`,实现了三种不同的字符串修剪方法:`Trim()`, `LTrim()`, 和 `Rtrim()`。下面将详细解析这些方法的实现原理及使用场景。 ### 1. `String....
String.prototype.codePoints 针对String.prototype.codePoints的ECMAScript建议 地位 该提案处于第一阶段。 动机 对于包含高于0xFFFF的代码点的语言(例如ECMAScript语法本身),词法分析器需要能够在使用自己的...
还可以使用String.prototype.repeat其他polyfills: ( 现在通过所有测试) 安装 通过 : npm install string.prototype.repeat 然后,在: var repeat = require ( 'string.prototype.repeat' ) ; 在浏览器...
String.Prototype.trim() trim()返回一个字符串两端空白字符被删除的新字符串,不影响原字符串。 第一种实现方式:理论上算是比较不错的 if (!String.prototype.trim) { String.prototype.trim = function () { ...
String.prototype.trimLeft 符合ES2019规范的String.prototype.trimLeft填充器。 如果不可用,则调用其“ shim”方法对String.prototype.trimLeft进行填充。 该软件包实现了接口。 它可以在ES3支持的环境中工作并...
String.prototype.trimRight 符合ES2019规范的String.prototype.trimRight填充程序。 如果不可用,请调用其“ shim”方法对String.prototype.trimRight进行填充。 该软件包实现了接口。 它可以在ES3支持的环境中...
这个"VC.code.examples.match.string.rar_The Match_code_match.exe"压缩包文件包含的是VC++编程中用于字符串匹配的开发代码示例。通过分析这个文件,我们可以深入理解如何在C++中实现字符串匹配功能。 首先,字符...
基于Keil实现字符串函数string.h的简单应用基于Keil实现字符串函数string.h的简单应用基于Keil实现字符串函数string.h的简单应用基于Keil实现字符串函数string.h的简单应用基于Keil实现字符串函数string.h的简单应用...
几年后,即2020年11月,添加了具有不同语义的String.prototype.at 。 请改用 。 串连 的健壮且经过优化的ES3兼容polyfill。 这段代码几乎完全是从@mathiasbynens出色的polyfill复制的,为我创建了该代码,以便它...
最新单片机仿真 字符串函数string.h应用举例最新单片机仿真 字符串函数string.h应用举例最新单片机仿真 字符串函数string.h应用举例最新单片机仿真 字符串函数string.h应用举例最新单片机仿真 字符串函数string.h...
为了方便管理这些多语言资源,Android使用`String.xml`文件来存储应用中的文本字符串。然而,手动编辑这些XML文件既耗时又容易出错,尤其是在处理大量文本时。这时,就需要借助一些工具进行`String.xml`与Excel之间...