我希望Java正则表达式可用于以下验证:
文本框应只允许2位数字和3位数字作为逗号分隔。 例如:12,123,56,567,789,11
答案 0 :(得分:1)
嘿,欢迎来到Stackoverflow
尝试这个
([0-9]{1,3},)*
-最后两位或三位应为不带逗号
(\d{1,3},)*$
-最后两位或三位数应该有逗号
(\d{2,3}),?
-同时捕获大小写-最后两位是否有逗号
您可以在this website中在线测试正则表达式-确保选择了JavaScript
答案 1 :(得分:0)
欢迎!
尝试使用此正则表达式代替/([0-9]{2,3}),?/gi
这将捕获任何2或3位数字,而无需使用可选的,
分隔符。
答案 2 :(得分:0)
答案 3 :(得分:0)
^ # beginning of line
\d{2,3} # 2 or 3 digits
(?: # start non capture group
, # a comma
\d{2,3} # 2 or 3 digits
)* # end group may appear 0 or more times
$ # end of line
如果您不希望以0
之类的以025
开头的数字
^ # beginning of line
[1-9] # digit fomr 1 to 9
\d # 1 digit
\d? # 1 optional digit
(?: # start non capture group
, # a comma
[1-9] # digit fomr 1 to 9
\d # 1 digit
\d? # 1 optional digit
)* # end group may appear 0 or more times
$ # end of line
答案 4 :(得分:0)
此正则表达式将匹配您的所有情况:^(?:\d{2,3},)+(\d{2,3}),?$|^\d{2,3}$
https://regex101.com/r/CdYVi9/2
示例JS:
const isValid = str => /^(?:\d{2,3},)+(\d{2,3}),?$|^\d{2,3}$/.test(str);