validate check for social insurance number. social insurance number: only 9 digits (1-9), only number, should be input in three boxes, 3 digit in each boxes( if possible use auto tab) add the odd digits : means 1th,3dr,5th,7th, 9th digits together = odd digits sum value Extract the even digits: mean 2nd, 4th, 6th, 8th digits-- and multiply by *2, add all the even digits together only if it is less than 10 if the 2nd, 4th, 6th, 8th digits is greater than 10 then , add like this ( for eg the 4th digit is 18 then add= 1+8) Then, odd digits sum value + the even digit sum value = multiple of ten (%10) <!DOCTYPE > <html> <head> <title></title> </head> <body> <script type="text/javascript"> function Validation(sin) { var num = sin.match(/^(\d{3})-?\d{3}-?\d{3}$/); var numDashes = sin.split('-').length - 1; if (num == null || numDashes == 1) { alert('Invalid S.I.N. Must be 9 digits or in the form NNN-NNN-NNN.'); msg = "does not appear to be valid"; } else if (parseInt(num[1], 10) == 0) { alert("Invalid SIN: SIN's can't start with 000."); msg = "does not appear to be valid"; } else { msg = "appears to be valid"; alert(sin + "\r\n\r\n" + msg + " Social Insurance Number."); } if (!num.test(sin)) return false; sin = sin.split("-").join(""); var checksum=0; for (var n = (2 - (sin.length % 2)); n <= sin.length; n += 2) { checksum += parseInt(sin.chartAt(n - 1)); for (var n = (sin.length % 2) + 1; n < sin.length; n += 2) var digit = parseInt(sin.charAt(n - 1)) * 2 if (digit < 10) { checksum += digit; } else { checksum += (digit - 9); } } if ((checksum % 10) == 0) return true; else return false; } </script> <form> <tt> SIN #: <input type="text" name="sin" size="11" maxlength="11"/> (use dashes!) </tt> <br/><br/> <input type="button" value="Validate Number" onclick="Validation(this.form.sin.value)"/> </form> </body> </html> Code is Not Working!!!! Can u Sent me a Solution for this!!!!!!!
"is not working" doesn't give us enough information to help you. What is it doing and what is it not doing? BTW, checksum += parseInt(sin.chartAt(n - 1)); is a typo (I don't know if it's in your actual code). It's charAt, not chartAt.