REGEX丢弃浮点数和前导零

时间:2015-10-13 06:02:01

标签: javascript java regex

我有一个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

2 个答案:

答案 0 :(得分:2)

尝试使用此模式[0]*[1-9][0-9]*

String str = "00012";
str.matches("[0]*[1-9][0-9]*");

其中:

[0]*是字符串

开头的任意数字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]*">