精度为2的小数的正则表达式是什么?
有效的例子:
123.12
2
56754
92929292929292.12
0.21
3.1
无效的示例:
12.1232
2.23332
e666.76
小数点可以是可选的,也可以包括整数。
精度为2的小数的正则表达式是什么?
有效的例子:
123.12
2
56754
92929292929292.12
0.21
3.1
无效的示例:
12.1232
2.23332
e666.76
小数点可以是可选的,也可以包括整数。
Answers:
有效的正则表达式令牌因实现而异。通用形式为:
[0-9]+(\.[0-9][0-9]?)?
更紧凑:
\d+(\.\d{1,2})?
两者都假定两者在小数点前至少有一位数字,在小数点后至少一位数字。
要要求整个字符串都是这种形式的数字,请将表达式包装在开始和结束标记中,例如(以Perl的形式):
^\d+(\.\d{1,2})?$
要匹配小数点(.12
)前没有前导数字的数字和带尾部句点(12.
)的整数,同时排除单个句点(.
)的输入,请尝试以下操作:
^(\d+(\.\d{0,2})?|\.?\d{1,2})$
包装小数部分()?
以使其成为可选。请注意,这排除了诸如“ 12.
包含”之类的形式,该形式更像是“” ^\d+\\.?\d{0,2}$
。
使用^\d{1,6}(\.\d{1,2})?$
停止重复并给予限制为十进制值的整体的一部分。
-?
,如中所示-?\d+(\.\d{1,2})?
。我没有添加负数或以小数点开头,因为OP的问题中没有这些负数,尽管它们对于更通用的数字格式肯定有效。这里的注释线程提供了几种处理“ .21”的方法。
^[0-9]+(\.[0-9]{1,2})?$
而且由于正则表达式很容易阅读,更让人难以理解,因此这是冗长的等效项:
^ # Start of string
[0-9]+ # Require one or more numbers
( # Begin optional group
\. # Point must be escaped or it is treated as "any character"
[0-9]{1,2} # One or two numbers
)? # End group--signify that it's optional with "?"
$ # End of string
您可以在大多数正则表达式实现中替换[0-9]
为\d
(包括最常见的PCRE)。我已将其保留,[0-9]
因为我认为它更易于阅读。
另外,这是我用来检查它的简单Python脚本:
import re
deci_num_checker = re.compile(r"""^[0-9]+(\.[0-9]{1,2})?$""")
valid = ["123.12", "2", "56754", "92929292929292.12", "0.21", "3.1"]
invalid = ["12.1232", "2.23332", "e666.76"]
assert len([deci_num_checker.match(x) != None for x in valid]) == len(valid)
assert [deci_num_checker.match(x) == None for x in invalid].count(False) == 0
+
第一闭合括号后,^([0-9]{0,3})(\.[0-9]{1,2})?$
\\.
改为,\.
因为.
它看起来像是可以使用,但可以匹配任何字符(不仅是小数位)。例如,如果您不逃避这两个问题1z23
,1.23
可能会被视为有效
要包含可选的减号并禁止使用数字015
(可能会误认为八进制数字),请输入:
-?(0|([1-9]\d*))(\.\d+)?
我用这一个,最多到小数点后两位:
(^(\+|\-)(0|([1-9][0-9]*))(\.[0-9]{1,2})?$)|(^(0{0,1}|([1-9][0-9]*))(\.[0-9]{1,2})?$)
经过:
0.25
0.25
10.25
+0.25
不及格:
-.25
01.25
1
1.256
主要答案是错误,因为它有效5.
或5,
输入
该代码可以处理它(但在我的示例中,禁止使用负数):
/^[0-9]+([.,][0-9]{1,2})?$/;
结果如下:
true =>“ 0” / true =>“ 0.00” / true =>“ 0.0” / true =>“ 0,00” / true =>“ 0,0” / true =>“ 1,2” true => “ 1.1” / true =>“ 1” / true =>“ 100” true =>“ 100.00” / true =>“ 100.0” / true =>“ 1.11” / true =>“ 1,11” / false => “ -5” /假=>“ -0.00” /真=>“ 101” /假=>“ 0.00.0” /真=>“ 0.000” /真=>“ 000.25” /假=>“ .25” / true =>“ 100.01” / true =>“ 100.2” / true =>“ 00” / false =>“ 5”。/ false =>“ 6,” / true =>“ 82” / true =>“ 81,3” / true =>“
这与我合作:
(-?[0-9]+(\.[0-9]+)?)
第一组是您的浮点数,第二组仅是小数。
function DecimalNumberValidation() {
var amounttext = ;
if (!(/^[-+]?\d*\.?\d*$/.test(document.getElementById('txtRemittanceNumber').value))){
alert('Please enter only numbers into amount textbox.')
}
else
{
alert('Right Number');
}
}
函数将验证任何十进制数字天气数字是否具有小数位,否则将显示“正确数字”,否则将显示“请在数量文本框中仅输入数字”。警报消息将会出现。
谢谢... :)