我有一个在输入时将阿拉伯数字转换为英文的功能,该功能在我的桌面浏览器上有效,但是当我在移动浏览器上尝试该功能不起作用时,有人知道为什么吗?这是代码:



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)">

最佳答案

我想我有答案,您需要在对象上运行以找出用户在输入中插入的字符是否等于对象中的“键”。

查看我的代码是否有帮助:

<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>

关于javascript - 在输入中更改语言,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52523785/

10-11 06:12