Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用regex模式验证版本号_Javascript_Regex - Fatal编程技术网

Javascript 如何使用regex模式验证版本号

Javascript 如何使用regex模式验证版本号,javascript,regex,Javascript,Regex,我必须验证以下示例的版本号模式: A1 aabc1 AabC134 aabc12.2 aA1.2.3 0.1.1 0.0.2 a.b.c a.1.2 a.0.0 1.0.0 1.0 1 基本上,它应该允许alphanum包含在所有三个部分中(按点拆分部分) 但这不能是: 0 0.0.0 000.000.000 0000.00.00 我尝试过这个正则表达式,但它允许零: /([A-Za-z\d]+)?(.*[A-Za-z\d]+)?(.*[A-Za-z\d]+)$ 是否可以对其进行修改以实现

我必须验证以下示例的版本号模式:

A1
aabc1
AabC134
aabc12.2
aA1.2.3
0.1.1
0.0.2
a.b.c
a.1.2
a.0.0
1.0.0
1.0
1
基本上,它应该允许alphanum包含在所有三个部分中(按点拆分部分) 但这不能是:

0
0.0.0
000.000.000
0000.00.00
我尝试过这个正则表达式,但它允许零:

/([A-Za-z\d]+)?(.*[A-Za-z\d]+)?(.*[A-Za-z\d]+)$

是否可以对其进行修改以实现上述结果?

我可能只使用负面外观标题来声明未出现黑名单上的版本号,否则将按照您已经在做的事情继续进行:

 ^(?!^(?:0|0\.0\.0|000\.000\.000|0000\.00\.00)$)[A-Za-z0-9]+(?:\.[A-Za-z0-9]+){0,2}$
您可以使用

/^(?![0.]+$)[A-Za-z0-9]+(?:\.[A-Za-z0-9]+){0,2}$/
或者

详细信息

  • ^
    -字符串的开头
  • (?![0.]+$)
    -在字符串结束前不允许使用零/点
  • [A-Za-z0-9]+
    -一个或多个数字/字母
  • (?:\.[A-Za-z0-9]+){0,2}
    -0,重复1或2次
    和1+数字或字母
  • $
    -字符串结尾
:


/^(?![0.]+$)[A-Za-z0-9]+(?:\.[A-Za-z0-9]+{0,2}$/
,请参见。@WiktorStribiżew它仍然允许
0
0.0.0
etcNo,它不允许。检查@WiktorStribiżew是的,现在没有了。这非常适合我的场景!感谢Wiktor Stribiżew虽然您的答案可能是精简和正确的,但如果这个正则表达式出现在某些应用程序代码中,我更愿意看到版本号的直观黑名单。想象一下,如果你继续前进,其他人继承了你的代码。该人员是否能够理解
(?![0.]+$)
旨在阻止OP中给出的四个版本号?
/^(?![0.]+$)[A-Z\d]+(?:\.[A-Z\d]+){0,2}$/i