gpt4 book ai didi

javascript - 当输入不是连续的时将字符串转换为整数

转载 作者:行者123 更新时间:2023-11-30 15:40:22 25 4
gpt4 key购买 nike

我有一个函数,可以在其中将输入字符串(阿拉伯数字)转换为 int 值。我使用以下功能执行此操作。

function convertToEnglishDigit(input) {
var numberMap = {
'۰': '0',
'۱': '1',
'۲': '2',
'۳': '3',
'۴': '4',
'۵': '5',
'۶': '6',
'۷': '7',
'۸': '8',
'۹': '9',
};
var result = parseInt(input.replace(/[۰-۹]/g, function(i) {
return numberMap[i];
}));

return result;
}

如果输入是单个字符,例如 '2',或者如果字符串是连续的,例如 '12345',它会起作用。如果输入是乱序的字符串,例如 "٢١٠" replace() 的返回值为 NaN,为什么会这样,我该如何解释它们出现故障的情况,在我的用例中,这种情况几乎总是如此。

最佳答案

无论出于何种原因,正则表达式都被这些文字字符弄糊涂了。您可以使用这些数字的十六进制代码使其工作:

function convertToEnglishDigit(input) {
var numberMap = {
'\u0660': '0',
'\u0661': '1',
'\u0662': '2',
'\u0663': '3',
'\u0664': '4',
'\u0665': '5',
'\u0666': '6',
'\u0667': '7',
'\u0668': '8',
'\u0669': '9'
};
var result = parseInt(input.replace(/[\u0660-\u0669]/g, function(i) {
return numberMap[i];
}));

return result;
}

关于javascript - 当输入不是连续的时将字符串转换为整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40919260/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com