我一直在进行大量的搜索、修改和更改,但我......有点迷失,特别是对于我见过的许多正则表达式示例。
这就是我想做的:
我有一个文本输入字段,大小为 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/