javascript - Social Security Number input validation -
i have sample:
code html:
<input class="required-input" id="ssn" maxlength="9" type="text" name="ssn" placeholder="123-45-6789"> code css:
.valid{ border:1px solid blue; } .invalid{ border:1px solid red; } code js:
function ssnformat(){ $("#ssn").on('blur change', function () { text = $(this).val().replace(/(\d{3})(\d{2})(\d{4})/, "$3-$2-$4"); if ($(this).val() == '' || $(this).val().match(text) || $(this).val().length == 0) { $(this).removeclass('valid').addclass('invalid'); }else { $(this).removeclass('invalid').addclass('valid'); } }); } $( "#ssn" ).on('blur change', function() { ssnformat(); }); what want these things are:
1.if write following text want validate format 123-12-1234
2.if write 123456789 want transform when click outside input in format
123-12-1234 i tried using function below don't work
$("#ssn").on("click", function() { var thisval = $(this).val(); var value = thisval.replace(/[^\/\d]/g,''); //here problem $(this).val(value); }); can please me solve problem?
thanks in advance!
try this
function myfunc() { var patt = new regexp("\d{3}[\-]\d{2}[\-]\d{4}"); var x = document.getelementbyid("ssn"); var res = patt.test(x.value); if(!res){ x.value = x.value .match(/\d*/g).join('') .match(/(\d{0,3})(\d{0,2})(\d{0,4})/).slice(1).join('-') .replace(/-*$/g, ''); } } .valid{ border:1px solid blue; } .invalid{ border:1px solid red; } <input class="required-input" id="ssn" type="text" name="ssn" placeholder="123-45-6789" onblur = "myfunc()"> also there way enforce user enters pattern -
<input class="required-input" id="ssn" type="text" name="ssn" placeholder="123-45-6789" onblur = "myfunc()" required pattern="\d{3}[\-]\d{2}[\-]\d{4}">
Comments
Post a Comment