gpt4 book ai didi

javascript - 社会安全号码输入验证

转载 作者:太空宇宙 更新时间:2023-11-04 14:30:13 25 4
gpt4 key购买 nike

我有 this 样本:

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();
});
.valid {
border: 1px solid blue;
}

.invalid {
border: 1px solid red;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<input class="required-input" id="ssn" maxlength="9" type="text" name="ssn" placeholder="123-45-6789">

我想做的这些事情是:

  1. 如果我编写以下文本,我想验证此格式 123-12-1234

  2. 如果我写 123456789 我想在点击这种格式的外部输入时进行转换

    123-12-1234

我尝试使用下面的函数来做到这一点,但不起作用

$("#ssn").on("click", function() {
var thisVal = $(this).val();
var value = thisVal.replace(/[^\/\d]/g,''); //here is a problem
$(this).val(value);
});

你能帮我解决这个问题吗?

提前致谢!

最佳答案

试试这个

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()">

还有另一种方法可以强制用户始终输入该模式 -

<input class="required-input" id="ssn" type="text" name="ssn" placeholder="123-45-6789" onBlur = "myFunc()" required pattern="\d{3}[\-]\d{2}[\-]\d{4}">

关于javascript - 社会安全号码输入验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38074856/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com