2017-01-29 9 views
0

i는 사용자가 작업을 잘 testinput 내부 입력을 시작하지만 난 그것을 입력 나를 방지의 음의 값을 허용 할 수 있도록하는 방법을 때 영어 숫자로 아랍어 숫자를 변환하려면이 코드를 작성 번호 입력에arabic에서 textinput 안의 숫자를 영어로 바꾸고 음수를 허용 하시겠습니까? (-)

jQuery(document).on("keyup", ".number", function(){ 
var yas =$(this).val(); 
yas = Number(yas.replace(/[٠١٢٣٤٥٦٧٨٩]/g, function(d) { return d.charCodeAt(0)-1632;}).replace(/[٠١٢٣٤٥٦٧٨٩]/g, function(d) {return d.charCodeAt(0) - 1776;})); 
    if (isNaN (yas)) 
    {yas= 0;} 
$(this).val(yas); 

}); 

답변

0
String.prototype.toEnglishDigits = function() { 
    var persian = { '۰': '0', '۱': '1', '۲': '2', '۳': '3', '۴': '4', '۵': '5', '۶': '6', '۷': '7', '۸': '8', '۹': '9' }; 
    var arabic = { '٠': '0', '١': '1', '٢': '2', '٣': '3', '٤': '4', '٥': '5', '٦': '6', '٧': '7', '٨': '8', '٩': '9' }; 
    return this.replace(/[^0-9.]/g, function (w) { 
     return persian[w] || arabic[w] || w; 
    }); 
}; 

jQuery(document).on("keyup", ".number", function(){ 
    var yas =$(this).val(); 
    yas = Number((yas || '').toEnglishDigits()); 
    if (isNaN (yas)) 
     yas = 0; 
    $(this).val(yas); 
}); 

String.prototype.toEnglishDigits = function() { 
 
    var persian = { '۰': '0', '۱': '1', '۲': '2', '۳': '3', '۴': '4', '۵': '5', '۶': '6', '۷': '7', '۸': '8', '۹': '9' }; 
 
    var arabic = { '٠': '0', '١': '1', '٢': '2', '٣': '3', '٤': '4', '٥': '5', '٦': '6', '٧': '7', '٨': '8', '٩': '9' }; 
 
    return this.replace(/[^0-9.]/g, function (w) { 
 
     return persian[w] || arabic[w] || w; 
 
    }); 
 
}; 
 

 
console.log('-۱۲۳۴.۵۶۷'.toEnglishDigits());

+0

같은 문제가 나를 추가 예방 있어요 (-) 음수는 내가 입력 한 경우 값을 0으로 변환 (-) 내 코드가 올바른 친구입니다 @maali의 TextInput – maali

+0

내부, 스 니펫 코드를 확인하십시오. 어쩌면 isNaN 함수가 잘못되었습니다! –