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

如何获取字符串中双下划线之间的数字并将其与另一个数字相乘?

如何获取字符串中双下划线之间的数字并将其与另一个数字相乘?

饮歌长啸 2024-01-18 15:50:09
假设我有一个示例字符串,let str = "Congrats! ID: 342, your salary is increased by __5%__ and it will increase by __10%__ next month.";我需要获取双下划线之间的数字(例如: __5%__ 和 __10%__ 如上所示)并将它们乘以 2。所以我的输出应该是,let result = "Congrats! ID: 342, your salary is increased by __10%__ and it will increase by __20%__ next month.";注意:数字 342 应保持不变,因为它不在双下划线之间。我怎样才能得到这个?提前致谢。
查看完整描述

3 回答

?
慕姐8265434

TA贡献1813条经验 获得超2个赞

您可以使用String.replace()这样的回调函数:


let str = "Congrats! ID: 342, your salary is increased by __5%__ and it will increase by __10%__ next month.";


let res=str.replace(/__(\d+)%__/g,function(_,num){return "__"+(2*num)+"%__"});

console.log(res)


查看完整回答
反对 回复 2024-01-18
?
沧海一幻觉

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

您可以按模式“__”拆分 str。

检查str是否以“%”结尾,如果是,则乘以两次即可。

并以相同的模式再次加入数组。

  str

  .split("__")

  .map(maybeNumber => {

    if (maybeNumber.endsWith("%")) {

      return `${parseInt(maybeNumber) * 2}%`

    }


    return maybeNumber;

  })

  .join("__")


查看完整回答
反对 回复 2024-01-18
?
狐的传说

TA贡献1804条经验 获得超3个赞

var str = "Congrats! ID: 342, your salary is increased by __5%__ and it will increase by __10%__ next month.";


var idInString = str.match(/\d+/)[0];

str = str.replace(idInString,""); // result is "Congrats! ID: , your salary is increased by __5%__ and it will increase by __10%__ next month." Now, with the first number at the beginning of string. Now, we can use the same method to get the other two numbers.


var firstNumberInString = str.match(/\d+/)[0];

document.write(firstNumberInString*2+"%"); // results in "10%"


str = str.replace(firstNumberInString,""); 


var secondNumberInString = str.match(/\d+/)[0];

document.write(secondNumberInString*2+"%"); // results in "20%"


查看完整回答
反对 回复 2024-01-18
  • 3 回答
  • 0 关注
  • 112 浏览
慕课专栏
更多

添加回答

举报

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