正则表达式之match、replace

首先我们看看W3上面的关于match的语法:
正则表达式之match、replace
我们主要研究第二种,关于正则表达式的匹配。

首先来看看最简单的一种形式
正则表达式之match、replace
如上图所示,对于匹配简单的字符串,如果匹配成功,就返回该字符串,如果失败返回null。

比较让人困惑的是,如果模式里带(),那返回的结果到底是什么呢?让我们来测试一下
正则表达式之match、replace
由上图可以得出结论,结果将返回一个数组,第一个元素为匹配该整个模式的字符串,后面的每个元素分别为每个括号里匹配的部分。

在有了上述认识之后,让我们来看看replace的用法。
正则表达式之match、replace
第一种用法显而易见,就是将字符串里的匹配的部分替换成第二个参数。
不过需要引起注意:如果没有加上g,则只会替换第一个匹配的字符。

继续,让我们看看replace里关于$1、$2....$9 的用法。
正则表达式之match、replace
由示例也可以很清楚的看出,每个$x分别代表第x括号里匹配的部分,x最大为9, 通过此技术可以很方便的进行替换或者换位。

最后一种,replace的第二个参数可以为函数,每次找到匹配的部分,该函数就会被调用一次,匹配的部分会被该函数返回值替换掉。
正则表达式之match、replace
根据该示例可以看出,传递给函数的参数和match返回的数组类似:第一个值是匹配该整个模式的字符串,后面是每个括号匹配的部分。
count最终结果为3,也验证了该函数被调用了3次。

如果有什么问题或建议,请多多指教!