有没有一种方法可以让javascript不计算特定的字符

Is there a way I can make javascript to not count a particular character?

本文关键字:计算 javascript 字符 一种 方法 有没有      更新时间:2023-09-26

在第1页中,我有这个html

<input value="creditCard" name="creditCard" maxlength="16">
<input value="name" name="name" maxlength="4">
<input type="button" name="submit">
DISPLAY:
1234567891234568
Name
button

如果我单击button,我将转到第2页,在第2页中我有一个编辑按钮。如果我点击edit,我将再次被引导到第1页,并使用掩码形式的信用卡

DISPLAY:
XXXX-XXXX-XXXX-4568
Name
button

例如,如果我单击creditCard输入,然后单击name输入,则显示将类似于:

DISPLAY:
XXXX-XXXX-XXXX-4
Name
button

由于我添加了"-",它算作一个字符,并且最大长度为16,因此输入的值仅修剪为16个字符。

有没有一种方法可以让我不把"-"视为一个需要计数的字符?我无法调整输入的maxlength属性。这是商业规则。非常感谢!

为什么不使用JQuery Mask插件用于此目的:

https://igorescobar.github.io/jQuery-Mask-Plugin/

它给了你很多需要处理的模式。

我希望您能在这段代码中解决它。

<!DOCTYPE html>
<html>
<body>
<form id="myForm">
<input type="text" size="4" tabindex="1" maxlength="4" onkeyup="myFunction(this,this.value)"> -
<input type="text" size="4" tabindex="2" maxlength="4" onkeyup="myFunction(this,this.value)"> -
<input type="text" size="4" tabindex="3" maxlength="4" onkeyup="myFunction(this,this.value)">
</form>
<script>
function myFunction(x, y) {
    if (y.length == x.maxLength) {
        var next = x.tabIndex;
        if (next < document.getElementById("myForm").length) {
            document.getElementById("myForm").elements[next].focus();
        }
    }
}
</script>
</body>
</html>