【问题标题】:Regex on input field for user id syntax [duplicate]用户 ID 语法的输入字段上的正则表达式 [重复]
【发布时间】:2018-10-06 10:16:33
【问题描述】:

我在注册屏幕上有一个输入字段,用户必须在其中输入他的用户 ID,该用户 ID 通常为 6 个字符长。前 2 个字符总是字母,后面的字符大多是数字。 (例如 ab123c 或 xy5678)

如何使用 jquery / javascript 检查用户在点击提交之前仅以上述格式输入的输入字段。

<input type="text" maxlength="6" name="uid" id="uid" placeholder="enter user id here">

【问题讨论】:

  • 你的代码有什么问题?你有没有尝试过任何模式?
  • “大部分是数字”是什么意思?那部分中的数字是否必须多于字母?
  • 为什么它一般是6个字符?有时可以更短或更长吗?是否有规定何时允许这样做?
  • @Barmar 总是 6
  • 请编辑您的问题以更准确地描述规则,不要使用所有这些模糊的限定条件。

标签: javascript jquery html regex


【解决方案1】:

您可以使用正则表达式验证您的输入

regex = /^[a-z]{2}[a-z0-9]{4}$/i ;

regex = /^[a-z]{2}[a-z0-9]{4}$/i ;

console.log('ab1234', regex.test('ab1234'));
console.log('abc234', regex.test('abc234'));
console.log('ab1d34', regex.test('ab1d34'));
console.log('ab12e4', regex.test('ab12e4'));
console.log('ab12yz', regex.test('ab12yz'));
console.log('2b1234', regex.test('2b1234'));
console.log('a11234', regex.test('a11234'));

【讨论】:

  • 如果你使用不区分大小写的标志,你不必包含A-Z的字符范围
  • @Terry 对。更新了,谢谢:)
【解决方案2】:

您不需要 javascript 或 jquery。可以使用 HTML。 w3c School

<input type="text" maxlength="6" name="uid" id="uid" placeholder="enter user id here" pattern="[a-zA-z]{2}[a-zA-Z0-9]{4}">

感谢 Barmar 的更新,之前没用过。

更新:

首先我不知道为什么关闭。问题不在于学习正则表达式,而在于实现。如果您想使用 jQuery,Aurelien 提供了正确的答案,如果您不想使用 jQuery 或 javascript,我的答案是正确的。 Zohaib ljaz 没有解决实施的核心问题。

第二:大多数 cmets 都没有帮助,他确实提供了示例,并且它在代码中具有最大长度,所以当然 6 是最大值。

【讨论】:

  • 模式中不需要括号。
【解决方案3】:

试试这个

$('form').on('submit', function(e){
    e.preventDefault();
    if($('#uid').val().match(/^[a-zA-Z]{2}[a-zA-Z0-9]{4}$/)){
        $(this).submit()
    }
    else {
     //Do your error logic here
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-17
    • 1970-01-01
    • 2020-11-18
    • 2012-08-11
    • 2011-07-20
    • 2010-10-22
    • 1970-01-01
    相关资源
    最近更新 更多