-3

我有一串这样的数字和字母:

let cad = "123941A120"

我需要用这些替换来转换它:A = 10, B = 11, C = 12, ..., Z = 35。例如,上面的字符串将导致以下结果,A替换为10: 12394110120

另一个例子:

Input:  158A52C3
Output: 1581052123
4

4 回答 4

1
于 2021-02-20T04:07:42.867 回答
0

你可以做:

const arr = [
  { A: 10 },
  { B: 11 },
  { C: 12 },
  // ...
]

const input = '158A52C3'
const output = arr.reduce((a, c) => {
  const [[k, v]] = Object.entries(c)
  return a.replace(new RegExp(k, 'g'), v)
}, input)

console.log(output)

于 2021-02-20T03:17:11.777 回答
0

这样做无需映射所有字母代码,假设相邻字母具有相邻代码......

result = "158A52c3".replaceAll(/[A-Z]/ig, (c) => {
    offset = 10;
    return c.toUpperCase().charCodeAt(0) - "A".charCodeAt(0) + offset;
})
    
console.log(result);

于 2021-02-20T03:21:00.817 回答
0

您可以执行以下操作:

const letters = {
'A':10,
'B':11,
'C':12
}
let cad = '123941A120'
for(let L in letters){
cad = can.replace(L,letters[L])
}
console.log(cad)
于 2021-02-20T03:22:00.667 回答