gpt4 book ai didi

Javascript 正则表达式最多仅匹配 11 位数字、一个逗号和其后的 2 位数字

转载 作者:行者123 更新时间:2023-11-28 13:47:08 25 4
gpt4 key购买 nike

我有一个文本框,其中最多只能包含 11 位数字、一个可选的逗号以及后面的两位数字。当按键按下文本框时,不应呈现任何其他内容:

$('#txt').keypress(function (e) {
var code = e.which;
var key = String.fromCharCode(code);
// REGEX TO AVOID CHARS & A DOT (.)
var pattern = /[a-zA-Z]|\./g;
var isMatch = pattern.test(key);
if (isMatch) {
// DO NOT RENDER CHARS & dot
e.preventDefault();
}
});

上面的代码在按下无效键(例如字符或点)时有效,但不能确保后面只有一个逗号和 2 位数字。

这必须匹配:

12314
123123,44

这绝不能:

12313,6666

Here是一个演示。

更新:必须避免除数字和逗号之外的任何数字,因此我提出的正则表达式无效,因为只能阻止点 (.)。

最佳答案

您应该测试完整的字符串,而不仅仅是当前字母。

$('#txt').keypress(function (e) {
var key = String.fromCharCode(e.which);
var pattern=/^[0-9]{1,11}(,[0-9]{0,2})?$/;

// test this
var txt = $(this).val() + key;

if (!pattern.test(txt)) {
e.preventDefault();
}
});

jsfiddle example

关于Javascript 正则表达式最多仅匹配 11 位数字、一个逗号和其后的 2 位数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13491589/

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