简体   繁体   English

如果大于变量,如何替换字符串中的数字?

[英]How to replace numbers in string if greater than variable?

I have a strings that always contain 2 numbers and I need to replace those numbers with "> 5" if those numbers are greater than 5.我有一个始终包含 2 个数字的字符串,如果这些数字大于 5,我需要用“> 5”替换这些数字。

const str = "SmartWear sklad 15&nbsp;ks<br />Externý sklad 12&nbsp;ks"; 
let limit = 5;

The result should be:结果应该是:

const replaced = "SmartWear sklad > 5&nbsp;ks<br />Externý sklad > 5&nbsp;ks";

I tried this, but that won't actually work if the other number is greater than 5 as well.我试过了,但如果另一个数字也大于 5,那实际上不起作用。

for (let stock of stocks) {
    let tooltip = stock.getAttribute("data-original-title") //"SmartWear sklad 15&nbsp;ks<br />Externý sklad 0&nbsp;ks";
    let limit = 5;
    const index = tooltip.search(/[0-9]/);
    const firstNum = tooltip[index];

    if (firstNum > limit) {
        const replaced = tooltip.replace(firstNum, `> ${limit}`)
        stock.setAttribute("data-original-title", replaced)
    }
}

.replace with a callback should do the trick .replace回调应该可以解决问题

 const str = "SmartWear sklad 15&nbsp;ks test 3<br />Externý sklad 12&nbsp;ks"; let limit = 5; newStr = str.replace(/\d+/g, num => Number(num) > limit? `&gt; ${limit}`: num) document.write(newStr)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM