用于字母数字值的正则表达式模式

时间:2013-05-29 08:43:21

标签: javascript regex

我想要一个只有字母数字值的正则表达式模式,不仅包括字母和数字,最小长度= 4,最大长度= 15,

我尝试使用/^[a-zA-Z0-9]{4,15}$/,但此模式也只允许使用字母和数字。

请帮帮我

3 个答案:

答案 0 :(得分:2)

这应该可以解决问题:

^(?=^.{4,15}$)([a-zA-Z]+[0-9][a-zA-Z0-9]*|[0-9]+[a-zA-Z][a-zA-Z0-9]*)$

请参阅此处的工作示例:http://regexr.com?351ia

说明:(更新:现在有长度检查)

首先,正向前瞻(?=^.{4,15}$)会检查字符串的长度。

如果你的字符串以字母开头,那么这部分正则表达式用于评估它:

[a-zA-Z]+[0-9][a-zA-Z0-9]*

  • [a-zA-Z]+表示字符串以至少一个字母开头
  • [0-9]然后在某个时候必须有一个数字
  • [a-zA-Z0-9]*后跟任意数量的数字或字母

如果您的字符串以数字开头,则使用正则表达式的第二部分:

[0-9]+[a-zA-Z][a-zA-Z0-9]*

与上述相同,只有这次必须才能成为字符串中的某个字母。

答案 1 :(得分:0)

您可能需要进行双向预测以查找数字和字母,一旦找到数字和字母,匹配将继续,否则不会。

正则表达式:/^(?=.*?[a-zA-Z])(?=.*?[0-9])[a-zA-Z0-9]{4,15}$/

答案 2 :(得分:0)

使用原始字母进行字母数字和长度测试,然后通过测试字符串中的数字后跟alpha或反之亦然来验证字符串是否包含alpha 数字。

   /^[a-z\d]{4,15}$/i.test (s) && /\d[a-z]|[a-z]\d/i.test (s);