A validator for Iranian (Persian) national identifier or social number
c#
, java
, javascript
, php
parameter: string (It doesn't support arabic or persian numbers)
return: boolean
By Vahid Hallaji under the MIT license
A validator for Iranian (Persian) national identifier or social number
c#
, java
, javascript
, php
parameter: string (It doesn't support arabic or persian numbers)
return: boolean
By Vahid Hallaji under the MIT license
public static bool isValid(string number) | |
{ | |
if (!(new Regex(@"^\d{10}$")).IsMatch(number) || (new Regex(@"^(\d)\1{9}$")).IsMatch(number)) { | |
return false; | |
} | |
int sum = 0; | |
for (int key = 0; key < number.Length - 1; key++) { | |
sum += (10 - key) * (int)(number[key] - '0'); | |
} | |
sum %= 11; | |
int number9 = (int)(number[9] - '0'); | |
return sum < 2 ? sum == number9 : 11 == number9 + sum; | |
} |
public static boolean isValid(String number) | |
{ | |
if (!number.matches("^\\d{10}$") || number.matches("^(\\d)\\1{9}$")) { | |
return false; | |
} | |
int sum = 0; | |
for (int key = 0; key < number.length() - 1; key++) { | |
sum += (10 - key) * Integer.parseInt(number.substring(key, key+1)); | |
} | |
sum %= 11; | |
int number9 = Integer.parseInt(number.substring(9, 10)); | |
return sum < 2 ? sum == number9 : 11 == number9 + sum; | |
} |
function isValid(number) | |
{ | |
number = number.toString(); | |
if (!number.match(/^\d{10}$/) || !!number.match(/^(\d)\1{9}$/)) { | |
return false; | |
} | |
for (var sum = 0, key = 0; key < number.length - 1; key++) { | |
sum += (10 - key) * parseInt(number[key]); | |
} | |
sum %= 11; | |
return sum < 2 ? sum == parseInt(number[9]) : 11 == parseInt(number[9]) + sum; | |
} |
public static function isValid($number) | |
{ | |
if (preg_match('/^\d{10}$/', $number) !== 1 || preg_match('/^(\d)\1{9}$/', $number) === 1) { | |
return false; | |
} | |
$sum = array_sum(array_map(function ($key) use ($number) { | |
return (10 - $key) * $number[$key]; | |
}, range(0, 8))) % 11; | |
return $sum < 2 ? $sum == $number[9] : 11 == $number[9] + $sum; | |
} |