我有一串这样的数字和字母:
let cad = "123941A120"
我需要用这些替换来转换它:A = 10, B = 11, C = 12, ..., Z = 35。例如,上面的字符串将导致以下结果,A
替换为10
: 12394110120
。
另一个例子:
Input: 158A52C3
Output: 1581052123
我有一串这样的数字和字母:
let cad = "123941A120"
我需要用这些替换来转换它:A = 10, B = 11, C = 12, ..., Z = 35。例如,上面的字符串将导致以下结果,A
替换为10
: 12394110120
。
另一个例子:
Input: 158A52C3
Output: 1581052123
你可以做:
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)
这样做无需映射所有字母代码,假设相邻字母具有相邻代码......
result = "158A52c3".replaceAll(/[A-Z]/ig, (c) => {
offset = 10;
return c.toUpperCase().charCodeAt(0) - "A".charCodeAt(0) + offset;
})
console.log(result);
您可以执行以下操作:
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)