正则表达式之match、replace
首先我们看看W3上面的关于match的语法:
我们主要研究第二种,关于正则表达式的匹配。
首先来看看最简单的一种形式
如上图所示,对于匹配简单的字符串,如果匹配成功,就返回该字符串,如果失败返回null。
比较让人困惑的是,如果模式里带()
,那返回的结果到底是什么呢?让我们来测试一下
由上图可以得出结论,结果将返回一个数组,第一个元素为匹配该整个模式的字符串,后面的每个元素分别为每个括号里匹配的部分。
在有了上述认识之后,让我们来看看replace的用法。
第一种用法显而易见,就是将字符串里的匹配的部分替换成第二个参数。
不过需要引起注意:如果没有加上g
,则只会替换第一个匹配的字符。
继续,让我们看看replace里关于$1、$2....$9
的用法。
由示例也可以很清楚的看出,每个$x分别代表第x括号里匹配的部分,x最大为9, 通过此技术可以很方便的进行替换或者换位。
最后一种,replace的第二个参数可以为函数,每次找到匹配的部分,该函数就会被调用一次,匹配的部分会被该函数返回值替换掉。
根据该示例可以看出,传递给函数的参数和match返回的数组类似:第一个值是匹配该整个模式的字符串,后面是每个括号匹配的部分。
count最终结果为3,也验证了该函数被调用了3次。
如果有什么问题或建议,请多多指教!