آیا کد ملی 9876543210 صحیح است ؟ این الگوریتم صحیح میدونه این شماره رو و چند تا دیگه رو
حتی در این سایت هم که الگوریتمش رو کامل توضیح داده این شماره رو وارد می کنیم میزنه صحیح است . : http://www.aliarash.com/article/codemeli/codemeli.htm
باید if قرار بدهیم اگر 9876543210 یا 9999999999 یا ... بود False برگردونه ؟ علاوه بر 10 عدد تکراری مثل 555555555 و 9876543210 چه اعدادی دیگری هستند که دراین الگوریتم کار نمی کنند ؟
حتی در این سایت هم که الگوریتمش رو کامل توضیح داده این شماره رو وارد می کنیم میزنه صحیح است . : http://www.aliarash.com/article/codemeli/codemeli.htm
باید if قرار بدهیم اگر 9876543210 یا 9999999999 یا ... بود False برگردونه ؟ علاوه بر 10 عدد تکراری مثل 555555555 و 9876543210 چه اعدادی دیگری هستند که دراین الگوریتم کار نمی کنند ؟
function isValidIranianNationalCode($input) { # check if input has 10 digits that all of them are not equal if (!preg_match("/^d{10}$/", $input)) { return false; } $check = (int) $input[9]; $sum = array_sum(array_map(function ($x) use ($input) { return ((int) $input[$x]) * (10 - $x); }, range(0, 8))) % 11; return $sum < 2 && $check == $sum || $sum >= 2 && $check + $sum == 11; }