首页 > 解决方案 > 如何在javascript中反转字符串中的数字组

问题描述

我有一个字符串,我希望将里面的数字组颠倒过来,例如 "this is number 123456 and reverse is 654321" 改为 "this is number 654321 and the reverse is 123456" 。我怎样才能做到这一点?

标签: javascript

解决方案


当我通过 net 搜索时,我终于得到了这个解决方案:

function reverseNumberInString(str){
    let numbers = str.match(/\d+/g) || [];
    for(let i = 0 ; i < numbers.length ; i++){
        let x = numbers[i].toString().split("").reverse().join("");
        let s = str
        str = s.slice(0,str.search(numbers[i])) + x + s.slice(str.search(numbers[i])+numbers[i].length)
    }
    return str
}

可能很有趣:

整个问题始于热敏 pos 打印机。我必须向它发送一串十六进制代码进行打印,但在我的语言(波斯语/波斯语)中它会反向打印,所以我必须反转十六进制字符串。但是然后数字会反转(当然还有英文单词!!)所以我反转了反转字符串中的数字(对于英文字母只需更改str.match(/\d+/g)为)!str.match(/\w+/g)

更新:

我还发现十进制数也有问题。所以我将正则表达式部分更改为str.match(/[a-zA-Z0-9.،,\/]+/g)


推荐阅读