Не сте регистриран! Регистрирайте се БЕЗПЛАТНО, за да използвате услугите на сайта!

 Проверка за валидно ЕГН
Автор  @Djimbo (08.02.2008 21:51) съобщение до автора
Погледнат  2831 пъти добави към любими
Оценка добави коментар
Гласове  4 изпрати на приятел
Коментари  (6) абонирай се за JavaScript
     
@Djimbo
     
 

Единна Система за Гражданска Регистрация и Административно Обслужване на Населението

CODE
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function isValidEGN(s){
   
var t = [2,4,8,5,10,9,7,3,6];
   
if(typeof s != 'string') return false;
   
if(s.length != 10) return false;
   
var rv; var rr = 0;
   
for(var i=0;i<9;i++){
       
if(s[i] == 0) continue ;
       
rr = rr + (s[i] * t[i]);
   
}
   
var chs = 0;
   
chs = (rr % 11);
   
if(chs == 10) chs = 0;
   
if(s[9] == chs) return true;
   
else return false;
}



Ключови думи: javascript проверка валидация




 1 посетител чете този скрипт (0 потребители и 1 гост)  
Активни потребители: ---
   
  

Еmail  
 

Posledniqt comentar or moq strana e greshen

function isValidEGN(egn){
   if (!(new RegExp("^\d{10}").test(s))) return false;
   var t = [2, 4, 8, 5, 10, 9, 7, 3, 6];
   for(var i = 0, sum = 0; i < 9; ++i)
      if(egn[i] != 0) sum += (egn[i] * t[i]);
   return egn[9] == (sum % 11) % 10;
}

  @Djimbo на 28.02.2008 13:03

podo saglasen li si , kraen variant

function isValidTAXN(s){
    if (!(new RegExp("^\d{10}").test(s))) return false;
    var t = [4,3,2,7,6,5,4,3,2];
    var sum = 0;
    for(var i=0;i<9;i++)
        if(s[i] != 0) sum += (s[i] * t[i]);
    return egn[9] == (sum % 11) % 10;
}

  @Djimbo на 28.02.2008 12:52

хмм, или дори:

function isValidEGN(egn){
   if (!(^\d{10}$.test(egn)))  return false;
   var t = [2, 4, 8, 5, 10, 9, 7, 3, 6];
   for(var i = 0, sum = 0; i < 9; ++i)
      if(egn[i] != 0) sum += (egn[i] * t[i]);
   return egn[9] == (sum % 11) % 10;
}

  podo на 28.02.2008 10:42

Всяка оптимизация е добре дошла

  @Djimbo на 28.02.2008 10:36

Благодаря за функцията!
Позволих си да поокастря ненужните нещица:

function isValidEGN(egn){
   if (!(^\d{10}$.test(egn))) return false;
   var t = [2, 4, 8, 5, 10, 9, 7, 3, 6];
   var sum = 0;
   for(var i = 0; i < 9; ++i){
     if(egn[i] != 0) sum += (egn[i] * t[i]);
   }
   var last = sum % 11;
   if(10 == last) last = 0;
   return egn[9] == last;
}

  podo на 28.02.2008 10:29

 

 
  • Интересно от Софтуер
 
  • Интересно от myLINKS
 
 
 
 



IT-PLACE.NET © 2004 - 2008