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]+
-0,重复1或2次(?:\.[A-Za-z0-9]+){0,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