我在这里尝试将Unicode编号转换为正常编号。到目前为止,我已设法将其转换为第一位数。 例如:1 => 1
但是当数字是2位数或更多时,它无法检测到它。
如果有人能指出如何解决这个问题会非常有帮助......
var items = ['०', '१', '२', '३', '४', '५', '६', '७', '८', '९'];
$("#xyz").keyup(function(){
var y = $("#xyz").val();
if(jQuery.inArray(y, items) !== -1){
$("#xyz").val(jQuery.inArray(y, items));
}else{
console.log('other');
}
});
更新
已成功转换为第n位数字。唯一的问题是用结果替换输入的字符串。在控制台中获得正确的输出,但无法在输入框中替换它
var items = ['०', '१', '२', '३', '४', '५', '६', '७', '८', '९'];
$("#xyz").keyup(function(){
var y = $("#xyz").val();
var res = y.split("");
var arr = [];
res.forEach(function(xx) {
if(jQuery.inArray(xx, items) !== -1){
arr.push(jQuery.inArray(xx, items));
}else{
console.log('other');
}
});
console.log(arr.join(""));
});
答案 0 :(得分:1)
我无法找到直接在input
中输入这些字符的方法,因此测试并不像我想要的那样彻底,但是,尝试一下:
var items = ['०', '१', '२', '३', '४', '५', '६', '७', '८', '९'];
$("#xyz").keyup(function(){
var y = $("#xyz").val();
var res = y.split("");
var arr = [];
res.forEach(function(xx) {
if(jQuery.inArray(xx, items) !== -1){
arr.push(jQuery.inArray(xx, items));
} else if(xx.match(/\d/)){
arr.push(xx);
}else{
console.log('other');
}
});
console.log(arr.join(""));
$(this).val(arr.join(""));
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="xyz"/>