javascript - 将文本输入限制为由非连续字符分隔的数字组

标签 javascript jquery regex validation input

我一直在进行大量的搜索、修改和更改,但我......有点迷失,特别是对于我见过的许多正则表达式示例。

这就是我想做的:

我有一个文本输入字段,大小为 32。

我希望用户在其中输入他们的电话号码,但我希望他们至少输入 10 个号码,并用一个逗号分隔。示例:

例如1 0123456789,0123456789 = 右(第一组 >=10 个数字,第二组 = >=10 个数字,组之间用单个逗号分隔,没有空格或其他符号)

例如2 0123456789,,0123456789 = 错误(因为有 2 个逗号)

例如3 0123456789,0123456789,0123456789 = 右(与 E.g. 1 相同的概念,但有 3 个组)

我有以下内容,但它不会将逗号限制为每 10 个数字 1 个,并且不会对数字组施加最小字符数。

$(document).ready(function(){
$("#lastname").keypress(function (e) {

//if the letter is not digit then display error and don't type anything
if (e.which != 8 && e.which != 0 && String.fromCharCode(e.which) != ',' 
&& (e.which < 48 || e.which > 57)) {

//display error message
$("#errmsg").html("Digits Only").show().fadeOut("slow");
return false;
}
});
});

最好,我也想警告用户他们哪里出了问题。例如,如果他们尝试输入两个逗号,我想在错误中特别指出这一点,或者如果他们没有插入足够的数字,我想在错误中特别指出这一点。我还想在错误中指出未插入数字或逗号的情况。我想确保键盘上的 Tab 键和 F5 键也不会被禁用。非常重要的是,我想专门检测何时使用加号或加法键,并在那里给出不同的错误。我想我要求的东西有点复杂而且不吸引人,所以抱歉:/

我上面提供的示例代码在所有浏览器中都能很好地工作,但它对我上面提到的任何内容都没有任何最小或最大限制。

如有任何帮助,我们将不胜感激。

最佳答案

对于检查输入是否有效的正则表达式(1-3 个正好 10 位数字的电话号码,用单个逗号分隔),您可以这样做:

^\d{10}(,\d{10}){0,2}$

关于javascript - 将文本输入限制为由非连续字符分隔的数字组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34151091/

相关文章:

javascript - 使用 jquery 添加

javascript - 将文本从表格单元格转换为文本区域时,并非所有 s 都会被替换

javascript - jquery的对话框模式可以改变模式内的页面吗?

javascript - 无法在 p-autocomplete 中将值绑定(bind)到 ngModel

javascript - jquery点击事件输入

javascript - 发送 javascript 变量和表单数据并将其绑定(bind)到模型

c++ - 正则表达式匹配空格,但不在 "strings"

json - 正则表达式可以减少巨大的文件大小?

javascript - 将对象与新值连接起来并将其转换为数组

javascript - 需要在查看模式和编辑模式下获取具有不同值的 EditText Cell