File tree Expand file tree Collapse file tree 1 file changed +50
-0
lines changed Expand file tree Collapse file tree 1 file changed +50
-0
lines changed Original file line number Diff line number Diff line change 1+ <?php
2+
3+ namespace Milwad \LaravelValidate \Rules ;
4+
5+ use Illuminate \Contracts \Validation \Rule ;
6+
7+ class ValidImei implements Rule
8+ {
9+ /**
10+ * Check jwt is valid.
11+ *
12+ * @param string $attribute
13+ * @param mixed $value
14+ * @return bool
15+ */
16+ public function passes ($ attribute , $ value )
17+ {
18+ $ imei = $ value ;
19+
20+ if (strlen ($ imei ) != 15 || !ctype_digit ($ imei )) {
21+ return false ;
22+ }
23+
24+ $ digits = str_split ($ imei ); // Get digits
25+ $ imei_last = array_pop ($ digits ); // Remove last digit, and store it
26+ $ log = array ();
27+
28+ foreach ($ digits as $ key => $ n ) {
29+ if ($ key & 1 ) {
30+ $ double = str_split ($ n * 2 ); // Get double digits
31+ $ n = array_sum ($ double ); // Sum double digits
32+ }
33+
34+ $ log [] = $ n ; // Append log
35+ }
36+ $ sum = array_sum ($ log ) * 9 ; // Sum log & multiply by 9
37+
38+ return substr ($ sum , -1 ) === $ imei_last ;
39+ }
40+
41+ /**
42+ * Get the validation error message.
43+ *
44+ * @return string
45+ */
46+ public function message ()
47+ {
48+ return __ ('imei ' );
49+ }
50+ }
You can’t perform that action at this time.
0 commit comments