我发现这个函数在文本输入仅为阿拉伯数字时非常有效:
function parseArabic(){ // PERSIAN (فارسی), ARABIC (عربي) , URDU (اُردُو)
var yas ="٠١٢٣٤٥٦٧٨٩";
yas = Number(yas.replace(/[٠١٢٣٤٥٦٧٨٩]/g, function (d) {
return d.charCodeAt(0) - 1632;
}).replace(/[۰۱۲۳۴۵۶۷۸۹]/g, function (d) { return d.charCodeAt(0) - 1776; })
);
alert(yas);
}
此处 yas 的警报值是“0123456789”。很好,但是现在当我在同一个变量中有其他字符可能是英语(字母和数字)和阿拉伯语(字母)时,我该如何使用这个函数? 例如:“测试 ٠١٢٣٤٥٦٧٨٩ 你好 مرحبا”
。我问这个是因为 parseArabic 只接受要翻译的阿拉伯数字;其他的被认为是 NaN。
最佳答案
对于一些不想费力寻找 Number
的人(根据 OP 的回答)。这是更新后的代码:
function parseArabic(){ // PERSIAN (فارسی), ARABIC (عربي) , URDU (اُردُو)
var yas ="٠١٢٣٤٥٦٧٨٩";
yas = (yas.replace(/[٠١٢٣٤٥٦٧٨٩]/g, function (d) {
return d.charCodeAt(0) - 1632;
}).replace(/[۰۱۲۳۴۵۶۷۸۹]/g, function (d) { return d.charCodeAt(0) - 1776; })
);
alert(yas);
}
关于javascript - 在文本输入中仅将阿拉伯数字转换为英文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43225416/