我有一个Regex表达式,除了零和浮点数^0*[1-9][0-9]*(\.[0-9]+)?|0+\.[0-9]*[1-9][0-9]*$
之外只允许正数,但它允许浮点数,任何人都可以修改它并让我知道正则表达式
有效的:
1-any number
01 - any number
无效:
00 - any leading zeros
0
1.4 - floating numbers
abc - alphabets
-1 - negative numbers
答案 0 :(得分:2)
尝试使用此模式[0]*[1-9][0-9]*
:
String str = "00012";
str.matches("[0]*[1-9][0-9]*");
其中:
[0]*
是字符串
[1-9]
从1到9的一位数
和[0-9]*
0到9之间的任意数字
如果您想将它与JavaScript一起使用,只需使用^和$进行修改即可确定字符串的开头和结尾,如:
^[0]*[1-9][0-9]*$
答案 1 :(得分:1)
斯坦尼斯拉夫的正则表达式(见下文)我认为匹配你想要的东西。如果您同意,请向他投票! (注意:您可能需要将其包装在^和$中,以便它匹配字符串的开头和结尾,如下所示:^[0]*[1-9][0-9]*$
)
你可以在这里测试一下:
/* https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Forms/Data_form_validation */
input:invalid {
border: 5px solid red;
}
<input pattern="[0]*[1-9][0-9]*">