JavaScript 正则表达式字符串替换

3

我想把从@º的部分替换成0

以下是我的字符串:

我尝试过仅适用于2对,但对于3等对等情况不起作用。

示例01:

输入数据

@8~Cº + @9~Cº

输出

0 + 0

示例02:

输入数据

@11~Cº + @12~P1º - @13~Fº

输出

0+0+0

以下是我的代码:

var tempRes = "@11~Cº + @12~P1º - @13~Fº";
tempRes = tempRes.replace(/@[0-9]~[A-Z]º/i,parseFloat(0));

在一个输出中,你有空格;在另一个输出中,你没有 -- 但两个输入中都有空格。你想要它们还是不要? - T.J. Crowder
@没有空格,两个都不会有空格 - Brave Man
好的。请使用“编辑”链接来纠正问题。请注意我为您应用的格式修复:确保您的问题清晰格式化需要花费时间。有一个完整的工具栏可供您使用,并且可以从**[?]**按钮获得很多帮助。 - T.J. Crowder
3个回答

3

您可以进行以下操作:

var s = '@11~Cº + @12~P1º + @13~Fº'
var r = s.replace(/@[^º]+º/g, 0);
//=> 0 + 0 + 0

编辑:还要去掉空格

var r = s.replace(/\s*@[^º]+º\s*/g, 0);
//=> 0+0+0

0
你可以使用这个正则表达式来捕获你想要的内容。
@.+?º

试试这个演示

演示

要去除空格,请使用此正则表达式

\s*@.+?º\s*

试试这个演示

var input = '@11~Cº + @12~P1º + @13~Fº'
var output = input.replace(/\s*@.+?º\s*/g, 0)

0

如果您的输入中有多行,我会使用这个正则表达式:

[ ]*@[^º\n]*º[ ]*

查看演示

说明:

  • [ ]* - 可选的空格
  • @ - 一个@符号
  • [^º\n]* - 0个或多个除了º和换行符之外的符号
  • [ ]* - 可选的空格

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接