为了账号安全,请及时绑定邮箱和手机立即绑定

Javascript 字符串替换没有替换我的参数

Javascript 字符串替换没有替换我的参数

潇湘沐 2022-12-22 15:57:52
我有以下字符串:"Write the conjugate of each radical expression.\n\n**(a)** `$2\\sqrt{3} - 4$`\n\n**(b)** `$\\sqrt{3} +\\sqrt{2}$`\n\n**(c)** `$-2\\sqrt{3} - \\sqrt{2}$`\n\n**(d)** `$3\\sqrt{3} + \\sqrt{2} $`\n\n**(e)** `$\\sqrt{2} - \\sqrt{5}$`\n\n**(f)** `$-\\sqrt{5} + 2\\sqrt{2}$`"我有以下函数来遍历一个字符串并替换子字符串:var changeString = function(markdownStr) {      return markdownStr.replace(/`/g, "").replace("$ ", "$").replace(" $", "$"); };我得到的结果是它替换了一些条件(`),但它对最后一个替换条件(“$”)不起作用。这是输出:Write the conjugate of each radical expression. **(a)**$2\sqrt{3} - 4$ **(b)** $\sqrt{3} +\sqrt{2}$ **(c)** $-2\sqrt{3} - \sqrt{2}$ **(d)** $3\sqrt{3} + \sqrt{2} $ **(e)** $\sqrt{2} - \sqrt{5}$ **(f)** $-\sqrt{5} + 2\sqrt{2}$您可以看到 (d) 选项,它仍然输出 as$3\sqrt{3} + \sqrt{2} $但我预计它是$3\sqrt{3} + \sqrt{2}$.发生了什么,为什么不替换它?这是一个代码笔示例: https ://codepen.io/jae_kingsley/pen/MWyWZbN
查看完整描述

2 回答

?
largeQ

TA贡献2039条经验 获得超7个赞

来自W3School

如果您要替换一个值(而不是正则表达式),则只会替换该值的第一个实例

所以你应该对所有替换使用正则表达式,而不仅仅是第一个。不要忘记你必须逃避$

.replace(/\s\$/g, '$')


查看完整回答
反对 回复 2022-12-22
?
慕妹3242003

TA贡献1824条经验 获得超6个赞

将您的代码更改为以下内容将起作用,因为它可以解释$之前或之后或没有空格的任何内容。所以它会匹配 $$ $,     $等等。

var changeString = function(markdownStr) { 
 return markdownStr.replace(/`/g, "").replace(/\s*\$\s*/g, '$');
};


查看完整回答
反对 回复 2022-12-22
  • 2 回答
  • 0 关注
  • 65 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信