字符串的正则表达式,由1到4个非零数字字符或1到4个非零数字字符和1个字母组成

时间:2015-08-08 07:48:23

标签: javascript regex

我正在为包含1到4个非零数字字符或1到4个非零数字字符和1个字母的字符串编写正则表达式,但我仍然坚持如何将字母字符的长度固定为1。

"(^[1-9]{1,4}$|^[[a-zA-Z][1-9]{1,4}]$)"

我试过这种方式,但它不起作用;它仅验证由1到4个非零数字字符组成的字符串。

2 个答案:

答案 0 :(得分:2)

^(?:\d{1,4}|(?=\d*[a-zA-Z]\d*$)[\da-zA-Z]{2,5})$

你需要一个lookahead。参见演示。

https://regex101.com/r/eX9gK2/2

答案 1 :(得分:0)

通常,您最好的机会是使用在线工具测试您的正则表达式,例如http://www.regexr.com/

此外,您尝试实现的目标可以这样做:([a-zA-Z]?[1-9]{1,4})

解释:

  • [a-zA-Z]表示a-z字母字符
  • ?表示前一组中的0或1(测试中缺少的内容)
  • [1-9]{1,4}表示1至4个数字字符,如您所述