我没有使用JQuery,所以我认为这不会造成麻烦。我首先使用iOS自动化工具进行了此操作,然后使用JSFiddle进行验证。如果有人能告诉我一个方法,那就太棒了。
var str = "<'pass!23$'>";
var str1 = str.replace("<'pass!23$'>", "'pass!23$'");
var str2 = str.replace("<'pass!23$'>", "'pass!23$a'");
这是小提琴:http://jsfiddle.net/adUtw/
这让我很困惑!
答案 0 :(得分:3)
如果您查看string.replace
at MDN的文档,您会注意到$
单独对替换有一些特殊含义。因此,如果您要插入$
,则需要使用$$
。
您的替换声明将如下所示:
var str1 = str.replace("<'pass!23$'>", "'pass!23$$'");
您可以通过更新小提琴来验证它是否正常工作。
答案 1 :(得分:1)
$
出现在replace
的第二个参数中时为interpreted in a special way。
它用于引用第一个参数中定义的正则表达式组:
'abc'.replace('(b)', 'XY$1Z') === 'aXYbZc'
$'
被解释为portion of the string that follows the matched substring.
要在第二个参数中使用$
,请通过说$$
来转义它。
var str1 = str.replace("<'pass!23$'>", "'pass!23$$'");