2014-02-14 3 views
1

У меня есть функция JavaScript, которая подсчитывает количество символов в некоторой текстовой области. Моя функция следующая.Подсчитайте количество символов на арабском и английском языках в строке в JavaScript

function limiting(obj) { 
    var count = $("#counter > span"); 
    var txt = $(obj).val(); 
    var length = txt.length; 
     $(cnt).html(length); 
} 

Я вызываю эту функцию каждый раз, когда кто-то печатает в текстовой области, и это работает. Теперь я хочу, чтобы эта функция действует как:

  • Detect арабских символов
  • Добавьте 2 к графе для каждого арабского характера
  • Добавить 1 к отсчету для каждого английского характера

, например, если у нас есть 2 арабских и 3 английских символа, тогда счет должен быть 7, в настоящее время это 5. У меня есть googled, но я не могу найти ничего понятного. Спасибо

+0

Я не уверен, что это может помочь : http://stackoverflow.com/questions/15453194/how-to-calculate-the-length-of-an-encoded-string – adamj

ответ

1

Арабские символы не являются ASCII, а английские символы - ASCII. Теперь в цикле, итерации по вашей строке, проверьте, является ли символ ASCII или нет.

function isASCII(str) { 
return /^[\x00-\x7F]*$/.test(str); 
} 

если верно добавить 1 к графу, если ложно добавить 2.

function countWeight(string){ 
    var count = 0; 
    for (var i = 0; i<string.length; i++){ 
    if (isASCII(string.charAt(i))) 
     count+=1; 
    else 
     count+=2; 
    } 
    return count; 
} 

Вы можете сделать это просто таким образом

function limiting(obj) { 
    var cnt= $("#counter > span"); 
    var txt = $(obj).val(); 
    var count = 0; 
    for (var i = 0; i< txt.length; i++) 
    count += /^[\x00-\x7F]*$/.test(txt.charAt(i))?1:2; 
    $(cnt).html(count); 
} 

TEST

countWeight("asdبي");//returns 7 
+0

Это не работает. – sikander

+0

Проблема была с функцией txt.charCodeAt, вместо этого нам нужно используйте txt.charAt. Исправленный. – ahmadalibaloch

+0

@Sikandar не забывайте отмечать ответ как проверенный сейчас. Благодарю. – ahmadalibaloch

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