对于移动商店应用程序,我需要validationIMEI号码 。 我知道如何基于输入长度进行validation,但是他们是否还有其他任何validation输入数字的机制? 有没有可以实现这一目标的内置function?
任何语言的逻辑都被接受和赞赏。
搜索表明没有内置函数可以validationIMEI号,但是有一种使用Luhn算法的validation方法。
一般过程:
上面步骤1中给出的IMEI是有效的,因为步骤#7中找到的数字是8,它与validation数字匹配。
我不相信有任何内置的方法来validationIMEI号码。 您需要针对第三方数据库进行validation(谷歌搜索表明有许多此类服务,但可能他们也从更集中的来源获取信息)。
我认为这个逻辑是不对的,因为这只适用于特定的IMEI no – 490154203237518而不适用于其他IMEI没有…我也实现了代码……
var number = 490154203237518; var array1 = new Array(); var array2 = new Array(); var specialno = 0 ; var sum = 0 ; var finalsum = 0; var cast = number.toString(10).split(''); var finalnumber = ''; if(cast.length == 15){ for(var i=0,n = cast.length; i
根据Karl Nicoll 先前的回答 ,我在Java中创建了这个方法。
需要了解更多c/c++开发分享是否有可能validationIMEI号码?,也可以关注C/ C++技术分享栏目---计算机技术网(www.ctvol.com)!
public static int validateImei(String imei) { //si la longitud del imei es distinta de 15 es invalido if (imei.length() != 15) return CheckImei.SHORT_IMEI; //si el imei contiene letras es invalido if (!PhoneNumber.allNumbers(imei)) return CheckImei.MALFORMED_IMEI; //obtener el ultimo digito como numero int last = imei.charAt(14) - 48; //duplicar cada segundo digito //sumar cada uno de los digitos resultantes del nuevo imei int curr; int sum = 0; for (int i = 0; i < 14; i++) { curr = imei.charAt(i) - 48; if (i % 2 != 0) sum += duplicateAndSum(curr); else sum += curr; } //redondear al multiplo de 10 superior mas cercano int round = sum % 10 == 0 ? sum : ((sum / 10 + 1) * 10); return (round - sum == last) ? CheckImei.VALID_IMEI_NO_NETWORK : CheckImei.INVALID_IMEI; }
以上就是c/c++开发分享是否有可能validationIMEI号码?相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/c-cdevelopment/979639.html