【问题标题】:String .replace() does not work with '$' symbol [duplicate]字符串 .replace() 不适用于“$”符号 [重复]
【发布时间】:2018-10-09 19:08:50
【问题描述】:

所以,我不知道出了什么问题?我知道 .replace() 返回一个新字符串,不存在可变的。这真的很荒谬,但我坚持这一点。我需要在'2'上替换'$',但它只是连接字符串,而不是替换值......

var answer_form = '$0';

var question_num = 2;
answer_form = answer_form.replace(/$/g, question_num); 

console.log(answer_form);

【问题讨论】:

  • answer_form = answer_form.replace(/\$/g, question_num);
  • 好发现,@Nina。

标签: javascript


【解决方案1】:

$ 在正则表达式中表示字符串的结尾。如果您不想使用正则表达式或转义字符,请使用":\$。

var answer_form = '$0';

var question_num = 2;
answer_form = answer_form.replace(/\$/g, question_num); 

console.log(answer_form);

【讨论】:

  • 谢谢!我只是忘了这个......哦
  • 很高兴我能帮上忙。考虑将此标记为您问题的答案,以便其他用户也可以找到它。
【解决方案2】:

var answer_form = '$0';

var question_num = 2;
answer_form = answer_form.replace(/[$]/g, question_num); 

console.log(answer_form);

【讨论】:

  • 欢迎来到 Stack Overflow!代码转储不是有用的答案。总是说做了什么,为什么,以及如何工作。
【解决方案3】:

String.replace 方法中的第一个参数可以是正则表达式或String。

在您的示例中,您使用的是正则表达式,其中$ 具有特殊含义,它匹配字符串的结尾。要匹配文字 $,您必须使用 \ 进行转义,如下例所示 -

answer_form = answer_form.replace(/\$/g, question_num);

【讨论】:

    猜你喜欢
    • 2021-05-10
    • 1970-01-01
    • 2019-01-08
    • 2016-05-20
    • 2020-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-25
    相关资源
    最近更新 更多