我目前正在制作一个简单的表单来练习Javascript验证,但在数字之间添加破折号时遇到了困难(例如:123-45-6789)。我需要在用户输入时保留显示其是否有效(仅9位数)的验证。这是我目前所拥有的第一个如有任何帮助和解释,我们将不胜感激
epggiuax1#
若要在用户键入时在输入值中添加短划线,可以使用String.prototype.replace方法搜索并替换输入值中的相应字符。例如,您可以将下列程式码加入ssnFunction,在输入值的适当位置插入虚缐:
let x = document.getElementById("ssn").value; // Insert dashes at the appropriate positions x = x.replace(/^(\d{3})(\d{2})(\d{4})$/, "$1-$2-$3"); // Update the input value with the formatted value document.getElementById("ssn").value = x;
此代码使用正则表达式搜索与输入值中的前三位数字、后两位数字和后四位数字相匹配的模式。然后,replace方法将此模式替换为相同的数字,但用短划线分隔。例如,如果输入值为123 - 45 - 6789,则正则表达式将匹配模式123-45-6789,并且replace方法将用此格式化值替换输入值。然后,您可以将此代码添加到ssnFunction中,以便用户每次在输入字段中键入字符时都执行此代码。这将确保在用户键入字符时将短划线插入到输入值中。
1条答案
按热度按时间epggiuax1#
若要在用户键入时在输入值中添加短划线,可以使用String.prototype.replace方法搜索并替换输入值中的相应字符。
例如,您可以将下列程式码加入ssnFunction,在输入值的适当位置插入虚缐:
此代码使用正则表达式搜索与输入值中的前三位数字、后两位数字和后四位数字相匹配的模式。然后,replace方法将此模式替换为相同的数字,但用短划线分隔。
例如,如果输入值为123 - 45 - 6789,则正则表达式将匹配模式123-45-6789,并且replace方法将用此格式化值替换输入值。
然后,您可以将此代码添加到ssnFunction中,以便用户每次在输入字段中键入字符时都执行此代码。这将确保在用户键入字符时将短划线插入到输入值中。