2014-12-18 1 views
0

этого jSFiddle примера принимать только арабские символы, есть предупреждение в случае, если вы вошли английские символы или даже номер/тирAllow (тир) и (номера) в регулярных выражениях для NON-английских символов

1- Мне нужно заставьте его принять номера & штрих
2 принять числа или тире в случае, если оно находится между введенным значением &, отклоните его, если оно находится в начале или в конце.

, например:

  • арабских ---- символов [правильный]

  • arabic7777chars [правильно]

  • arabicchars ---- [неправильно]

  • 77777arabicchars [неправильно]

по крайней мере, мне это нужно, чтобы принять число & тире, заранее спасибо

HTML код:

<div class="search-bar"> 
    <input type="text" class="name"> 
    <input type="submit" value="submit"> 

JS код:

$(document).ready(function(e){ 
    $('.search-bar').on('change', '.name', function(e) { 
     var is_arabic = CheckArabicOnly(this); 
    });  
}); 

function CheckArabicOnly(field) { 
var sNewVal = ""; 
var sFieldVal = field.value; 
for(var i = 0; i < sFieldVal.length; i++) { 
    var ch = sFieldVal.charAt(i);; 
    var c = ch.charCodeAt(0); 
    var dash = "-"; 
    if(c < 1536 || c > 1791) { 
     alert("Please Enter AR characters"); 
     field.value = ''; 
     return false 
    } 
    else { 
     sNewVal += ch; 
    } 
} 
field.value = sNewVal; 

return true; 
} 

jSFiddle

ответ

1

Другим решением было бы что-то похожее на ниже:

$(document).ready(function(e){ 
    $('.search-bar').on('change', '.name', function(e) { 
     var is_arabic = CheckArabicOnly(this); 
    });  
}); 
    function CheckArabicOnly(field) { 
    var sNewVal = ""; 
    var sFieldVal = field.value; 
    //If the string starts or ends with dashes or digits, this will match and the function will exit. The middle section will check to see if there are more than two consecutive dashes in the string. 
     var reg = new RegExp("(^(\d|-))|(-{2,})|((\d|-)$)"); 
    if(reg.test(sFieldVal)) 
    { 
     alert("Invalid"); 
     return false; 
    } 
    for(var i = 0; i < sFieldVal.length; i++) { 
     var ch = sFieldVal.charAt(i); 
     var c = ch.charCodeAt(0);   
     var dash = "-"; 
     //45 is the value obtained when a digit is used, so we add it to the list of exceptions.  
     if((c != 45) && (c < 1536 || c > 1791)) { 
      alert("Please Enter AR characters"); 
      field.value = ''; 
      return false 
     } 
     else { 
      sNewVal += ch; 
     } 
    } 
    field.value = sNewVal; 

    return true; 
} 
+0

Спасибо, работает как шарм! можете ли вы обновить его, чтобы предотвратить последующие тире, такие как (имя - имя). –

+0

@IbrahimAboSeada: изменен в соответствии с вашим комментарием. – npinti

+0

Удивительный! Спасибо :) –

Смежные вопросы