【问题标题】:Change allowed input with Javascript?使用 Javascript 更改允许的输入?
【发布时间】:2018-01-01 11:20:10
【问题描述】:

大家好,我正在尝试编写一个脚本,用 javascript 更改输入的允许输入。

允许的输入应该是:

[a-zA-Z-0-9]{2}[0-9]{1,5}

表示2 x number or letter + 1-5 x numbers

这是我目前得到的代码:

JSFiddle

关于该代码的事情是它可以工作,但它只允许:

[a-zA-Z-0-9]{2}[0-9]{1,4}

所以应该允许再输入1个数字。

我该怎么做?我的代码中的错误在哪里?

如您所见,该功能有效,但问题是它需要再允许 1 个数字。

【问题讨论】:

    标签: javascript html regex


    【解决方案1】:

    您的input 标签上设置了maxlength="6",这就是它受到限制的原因。

    将其更改为maxlength="7",它将按预期工作。

    【讨论】:

    • 我正要这么说:)
    • 哈哈哈,好吧,我永远不会想到那个大声笑,非常感谢你:)
    【解决方案2】:

    您将maxlength 误认为6。因为,您预计最多 7 个字符,2 x number or letter + 1-5 x numbers 您需要将您的 maxlength 更改为 7,它会为您工作。

    var el = document.getElementById("Flightnumber1");
    
                function isnum(num1) {
                  if (num1 <= 9 && num1 >= 0)
                    return 1;
                  else
                    return 0;
                }
                function setCharAt(str, index, chr) {
                  if (index > str.length - 1) return str;
                  return str.substr(0, index) + chr + str.substr(index + 1);
                }
                el.onkeyup = function(evt) {
    
                  if (!isnum(el.value.charAt(2)))
                    el.value = setCharAt(el.value, 2, '');
                  if (!isnum(el.value.charAt(3)))
                    el.value = setCharAt(el.value, 3, '');
                  if (!isnum(el.value.charAt(4)))
                    el.value = setCharAt(el.value, 4, '');
                  if (!isnum(el.value.charAt(5)))
                    el.value = setCharAt(el.value, 5, '');
                  if (!isnum(el.value.charAt(6)))
                    el.value = setCharAt(el.value, 6, '');
                };         
    .nav { color: green; }
    .selected { color: red; }
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <input id="Flightnumber1" name="Flightnumber1" placeholder="Flugnummer" type="text" maxlength="7" pattern="[a-zA-Z-0-9]{2}[0-9]{1,5}" title="3 to 7 characters" required />

    【讨论】:

    • 我们已经得到了这个,但仍然感谢,也许它帮助别人,我会检查你的答案,因为它是最好的。感谢您的工作和时间:)
    • 不,我需要谢谢你:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-21
    • 1970-01-01
    • 2017-02-08
    • 2021-11-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多