在更改光标问题上输入rtl文本?

我有一个问题在下面的JS Fiddle片段中,当有人在输入中键入内容然后当他想通过转到后向类型字符来修改它,因此在按下退格键后删除字符使光标自动转到输入的末尾从输入的当前位置。

通常不会发生这种情况吗?

那么是什么导致这种情况呢?无论如何要解决这个问题?

JS Fiddle Link: https //jsfiddle.net/5yrqsxa7/

var replacements = [ ["a", "ا"], ["A", "آ"], ["b", "ب"], ["B", ""], ["c", "چ"], ["C", "ث"], ["d", "د"], ["D", "ډ"], ["e", "ع"], ["E", "ږ"], ["f", "ف"], ["F", ""], ["g", "ګ"], ["G", "غ"], ["h", "ح"], ["H", "ځ"], ["i", "ي"], ["I", "ې"], ["j", "ج"], ["J", "ض"], ["k", "ک"], ["K", "خ"], ["l", "ل"], ["L", ""], ["m", "م"], ["M", ""], ["n", "ن"], ["N", "ڼ"], ["o", "ه"], ["O", "ۀ"], ["p", "پ"], ["P", "څ"], ["q", "ق"], ["Q", "ښ"], ["r", "ر"], ["R", "ړ"], ["s", "س"], ["S", "ص"], ["t", "ت"], ["T", "ټ"], ["u", "ئ"], ["U", "ۍ"], ["v", "ط"], ["V", "ظ"], ["w", "و"], ["W", "ؤ"], ["x", "ش"], ["X", "ژ"], ["y", "ے"], ["Y", "ی"], ["z", "ز"], ["Z", "ذ"], ["?", "؟"], [";", "؛"], ["0", "۰"], ["1", "۱"], ["2", "۲"], ["3", "۳"], ["4", "۴"], ["5", "۵"], ["6", "۶"], ["7", "۷"], ["8", "۸"], ["9", "۹"] ].map(function (c) { // Escape the special characters var escaped = c[0].replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&"); // And then convert into regular expression c[0] = new RegExp(escaped, "g"); return c; }); $("#pashto").on("input", function(event) { var car = $(this).val(); // Now, simply replace by regular expressions replacements.forEach(function (c) { car = car.replace(c[0], c[1]); }); $(this).val(car); }); 
 #pashto { direction: rtl; text-align: right; font-size: 20px; padding: 5px; }