Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 精度为2的十进制的简单正则表达式_Regex - Fatal编程技术网

Regex 精度为2的十进制的简单正则表达式

Regex 精度为2的十进制的简单正则表达式,regex,Regex,精度为2的小数的正则表达式是什么 有效例子: 无效示例: 小数点可以是可选的,也可以包括整数。有效的正则表达式标记因实现而异。一般形式为: [0-9]+(\.[0-9][0-9]?)? 更紧凑: \d+(\.\d{1,2})? 两者都假设在小数点之前和之后至少有一位数字 要要求整个字符串是此表单的数字,请将表达式包装在开始和结束标记中,例如(以Perl的形式): 要匹配小数(.12)前无前导数字的数字和尾随句点(12.)的整数,同时排除单个句点()的输入,请尝试以下操作: ^(\d+(\.\

精度为2的小数的正则表达式是什么

有效例子:

无效示例:


小数点可以是可选的,也可以包括整数。

有效的正则表达式标记因实现而异。一般形式为:

[0-9]+(\.[0-9][0-9]?)?
更紧凑:

\d+(\.\d{1,2})?
两者都假设在小数点之前和之后至少有一位数字

要要求整个字符串是此表单的数字,请将表达式包装在开始和结束标记中,例如(以Perl的形式):

要匹配小数(
.12
)前无前导数字的数字和尾随句点(
12.
)的整数,同时排除单个句点(
)的输入,请尝试以下操作:

^(\d+(\.\d{0,2})?|\.?\d{1,2})$

补充 将小数部分包装在
()?
中,使其成为可选部分。请注意,这不包括像
12.
这样的表单,包括更像
^\d+\\.?\d{0,2}$
的表单

补充
使用
^\d{1,6}(\.\d{1,2})$
停止重复,并对小数的整部分进行限制。

您是否需要考虑
e666.76
中的
e

由于正则表达式很难阅读,更不用说理解了,下面是详细的等价物:

^                         # 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
。我把它保留为
[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

要包含可选减号并禁止使用像
015
(可能被误认为八进制数)这样的数字,请编写:

试试这个

 (\\+|-)?([0-9]+(\\.[0-9]+))

它还允许正号和负号。

我使用这个符号最多保留两位小数:
preg_match("/^-?\d+[\.]?\d\d$/", $sum)
(^(+\\\-)(0 |([1-9][0-9]*)(\[0-9]{1,2})$)(^(0{0,1}{124;)([1-9][0-9]*)(\[0-9]{1,2})$)
通行证:
.25
0.25
10.25
+0.25

未通过:
-.25
01.25
1.

1.256我在我的项目中试过一个。 这也允许数字带有
+|-
符号

/^(\+|-)?[0-9]{0,}((\.){1}[0-9]{1,}){0,1}$/

对于没有千位分隔符的数字,我喜欢这个简单紧凑的正则表达式:

\d+(\.\d{2})?|\.\d{2}
或者,精度不限于2:

\d+(\.\d*)?|\.\d+
后者匹配
1
100
100.
100.74
100.7
0.7
.7
.72


而且它通常与空字符串不匹配(如\d*?\d*会)

,即无限制的小数位数:

^-?([1-9]\d*)| 0)(.0*[1-9](0*[1-9])*)?$


将使
12.
之类的内容被接受。这不是普遍接受的,但如果你需要“灵活”,这是一种方法。当然
[0-9]
可以用
\d
替换,但我想这样更可读。

添加我的答案,可能会有人发现它有用,或者可能也是我的正确答案

function getInteger(int){
  var regx = /^[-+]?[\d.]+$/g;
  return regx.test(int);
}


alert(getInteger('-11.11'));
这对我起了作用:

(-?[0-9]+(\.[0-9]+)?)
组1是您的浮点数,组2只是分数

 function DecimalNumberValidation() {
        var amounttext = ;
            if (!(/^[-+]?\d*\.?\d*$/.test(document.getElementById('txtRemittanceNumber').value))){
            alert('Please enter only numbers into amount textbox.')
            }
            else
            {
            alert('Right Number');
            }
    }
函数将验证任何十进制数天气数字是否有小数点,它将显示“正确的数字”或“请只在金额文本框中输入数字”。警报消息将出现


谢谢……:)

Chrome 56不接受这种模式(Chrome 56接受11.11。附加)。对于类型编号,使用类型作为文本作为进度


主要答案是错误的,因为它有效
5。
5,
输入

此代码处理它(但在我的示例中,负数是禁止的):

结果如下:

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”/false=>“-0.00”/true=>“101”/false=> “0.00.0”/true=>“0.000”/true=>“000.25”/false=>”.25”/true=>“100.01”/ true=>“100.2”/true=>“00”/false=>“5.”/false=>“6”,/true=>“82”/true=> “81,3”/true=>“7”/true=>“7.654”


这将允许十进制数进行幂运算,最多2位

^[+-]?\d+(\.\d{2}([eE](-[1-9]([0-9]*)?|[+]?\d+))?)?$

不,这超出了项目范围!不过谢谢,它很方便:)从数学上讲,我认为精度为2的数字应该总是有两个小数,即使最后一个是零。这是基于我对重要数字的经验,所以它可能是错误的,但你实际上不知道1.7是1.70还是1.70到1.74之间的任何数字。谢谢!这正是我所需要的:)+1@DocMax,如果^\d+(\.\d{1,2})$表达式支持负数,我需要更改什么?类似于-4509.45或-0.45或-0.45在这个^\d+(\.\d{1,2})中添加了“-?”$==>^-?\d+(\.\d{1,2})表示支持-ve@BimalDas,您可以通过在表达式前面加上前缀
-?
,如
-?\d+(\.\d{1,2})
来支持负数。我没有包括否定或以小数点开始,因为这些不在OP的问题中,尽管它们对于更通用的数字格式肯定有效。这里的注释线程提供了一些处理“.21”的方法。我希望小数点前最多有3位数字,像这样尝试是没有运气的^([0-9]{0,3})+(\.[0-9]{1,2})$@Raghurocks在第一次结束paren后删除
+
^([0-9]{0,3})(\.[0-9]{1,2})$
对于Java用户:小数点不应该转义。@Gracchus确定吗?它可能应该是
\.
而不是
\.
,因为
看起来可以工作,但可以匹配任何字符(不仅仅是小数点)。例如,如果不转义,则
1z23
1.23
都可能被视为有效it@dbr也许这就是它应该是的。Java只是抱怨不正确的转义。删除“修复它”(闭嘴),哈哈。我还没有机会完全测试它。这也传递了一个空白值。这是
\d+(\.\d{2})?|\.\d{2}
\d+(\.\d*)?|\.\d+
^[0-9]+(\.([0-9]{1,2})?)?$
function getInteger(int){
  var regx = /^[-+]?[\d.]+$/g;
  return regx.test(int);
}


alert(getInteger('-11.11'));
(-?[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');
            }
    }
/^[0-9]+([.,][0-9]{1,2})?$/;
^[+-]?\d+(\.\d{2}([eE](-[1-9]([0-9]*)?|[+]?\d+))?)?$