最近在工作中遇到一个问题

就是包含在relpace时,替换字符包含了$,会出现替换错误。

 

replace定义:

stringObj.replace(rgExp, replaceText)

 

网上查了很久,没有找到原因,最后还是查文档手册找到了原因。

replace可以支持正则,我们熟悉的会有参数$1,$2这样的。但实际上还有其它的特殊字符

 

手册上有一张表列举着,我在这里列举几个

$$     $ (JScript 5.5 或更新版本)

$&    指定与整个模式匹配的 stringObj 的部分。 (JScript 5.5 或更新版本)

$`   指定由 $& 描述的匹配之前的 stringObj 部分。 (JScript 5.5 或更新版本)

 

我遇到的问题就是$&组合,替换成了字符串本身,导致出错。

处理方法就很简单了

把$全部写成转义形式,$$

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注