gpt4 book ai didi

javascript - 仅允许数字和数字之间的单个连字符

转载 作者:行者123 更新时间:2023-12-04 08:35:56 25 4
gpt4 key购买 nike

我是新来的 regular expression .我正在寻找/搜索只允许数字之间有一个连字符的限制。我找到了一个正则表达式的示例公式,但我不知道为什么我下面的代码仍然接受一个字符。
我想要实现的是
输出

1-1


类似的东西。

    $('#txt').keypress(function () {
const exp = /^\d{1,2}(-\d{1,2})?$/;
const el = $(this);
if (exp.test(el.val()) == true)
alert("a");
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="text" id="txt">

最佳答案

你的正则表达式没问题,但你不应该使用 keypress event 作为触发器,它总是在实际输入任何内容之前触发。使用 .on('input', ...)反而:

$('#txt').on('input', function () {
const exp = /^\d{1,2}(-\d{1,2})?$/;
const el = $(this);

// replace anything that is not a number or hyphan
el.val(el.val().replace(/[^\d-]|(?<=^|-.*)-|(?<=\d{2,})\d/g, ''));

if (exp.test(el.val()) == true)
console.log("a");
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="text" id="txt">

关于javascript - 仅允许数字和数字之间的单个连字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64797145/

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