具有至少 1 个数字和 1 个字符且固定长度为 11 的字母数字字符串的正则表达式

Posted

技术标签:

【中文标题】具有至少 1 个数字和 1 个字符且固定长度为 11 的字母数字字符串的正则表达式【英文标题】:Regex for alphanumeric string with at least 1 number and 1 character and a fixed length of 11 【发布时间】:2017-11-15 15:25:03 【问题描述】:

我需要正则表达式来匹配长度为 11 个字符的字母数字字符串,但该值必须至少包含 1 个字符和 1 个数字。

结合使用 Regex for alphanumeric with at least 1 number and 1 character

/^(?=.*[0-9])(?=.*[a-zA-Z])([a-zA-Z0-9]+)$/

和What is the regex to match an alphanumeric 6 character string?

^[a-zA-Z0-9]6,$

像这样使用 OR (||) 运算符

//regex code
var str = "";
if ($.trim($("input[id$='txtBranchName']").val()) != "")
    str = $.trim($("input[id$='txtBranchName']").val());
var reg_exp = /^(?:[0-9]+[a-z]|[a-z]+[0-9])[a-z0-9]*$/i; // /^[a-zA-Z0-9]11,$/;//^(\d)(?:\1+)?$/; // new RegExp('([0-9])6');
var reg_exp2 = /^[a-zA-Z0-9]11,11$/;
if (!reg_exp.test(str) || !reg_exp2.test(str)) 
    $("span[id$='lblError']").css("color", "red");
    $("span[id$='lblError']").html($("span[id$='lbl_PayeeInformation_IFSCNo']").html()).show();
    $("input[id$='txtBranchName']").focus();
    returned = false;
    return false;

//end regex code

但如果我在一个正则表达式中得到它会很棒。

【问题讨论】:

【参考方案1】:

您需要将两者结合起来并使用 11 来精确匹配 11 个字符。

/^(?=.*\d)(?=.*[a-zA-Z])[a-zA-Z0-9]11$/

地点:

    (?=.*\d) 断言该位置跟在任何位置的数字后面(其中\d 等价于[0-9])。 (?=.*[a-zA-Z]) 断言该位置在任何位置都遵循字母表。 [a-zA-Z0-9]11 仅在长度为 11 个字符且在字符类内时匹配。 ^ and $ 是帮助检查整个字符串的开始和结束锚点。

【讨论】:

以上是关于具有至少 1 个数字和 1 个字符且固定长度为 11 的字母数字字符串的正则表达式的主要内容,如果未能解决你的问题,请参考以下文章

js验证字符长度,一个中文2个字符,英文和数字为1个字符

R REGEX匹配-至少1个小写字母,1个数字,并且没有8个长度的特殊字符[重复]

包含至少 8 个字符和至少 1 个非字母数字字符的密码的正则表达式

正则表达式,用于包含至少8个字符和至少1个非字母数字字符的密码

SQLSERVER中nvarchar和varchar类型的区别是啥?

二、数据库与数据表--2、SQLServer的数据类型