我有一个函数,可在输入时将阿拉伯数字转换为英文,可在我的桌面浏览器上运行,但是当我在移动浏览器上尝试它不起作用时,有人知道为什么吗?这是代码:
let map = {
'۰' : "0",
'۱' : "1",
'۲' : "2",
'۳' : "3",
'۴' : "4",
'۵' : "5",
'۶' : "6",
'۷' : "7",
'۸' : "8",
'۹' : "9"
};
function change(el){
el.value = el.value.replace(/[۰۱۲۳۴۵۶۷۸۹]/g, function(match){
return map[match]
})
}
<input type="text" oninput="change(this)">
答案 0 :(得分:-1)
我想我有答案,您需要在对象上运行,以找出用户在输入中插入的字符是否等于对象中的“键”。
查看我的代码是否有帮助:
<html>
<body>
<input type="text" onkeyup="change(this)" value="">
<script>
let map = {
'۰' : "0",
'۱' : "1",
'۲' : "2",
'۳' : "3",
'۴' : "4",
'۵' : "5",
'۶' : "6",
'۷' : "7",
'۸' : "8",
'۹' : "9"
};
function change(el){
for (var key in map) {
console.log(el.value.slice(-1));
if (key == el.value.slice(-1)) {
el.value += map[key]; // save the value as number
el.value = el.value.replace(key,''); // clean all the "replaced" character
}
}
}
</script>
</body>