繁体   English   中英

如何修改此JavaScript正则表达式,以检查字符串是否是必须最多包含2个十进制数字的数字?

[英]How can I modify this JavaScript regex that checks if a string is a number that must have maximum 2 decimal digits?

我在JavaScript正则表达式中是个新手,并且遇到以下问题。

进入我正在处理的JQuery脚本中,我有以下正则表达式,它似乎检查variazioneAnticipo变量中的值是否为十进制数:

var variazioneAnticipo = $("#variazioneAnticipo").val();

if (/^[0-9]+(\.[0-9]+)?$/.test(variazioneAnticipo)) {
    ..................................................
    ..................................................
    DO SOMETHING
    ..................................................
    ..................................................
}

我认为这意味着以前的正则表达式对可以连接到的0到9(数字的整数部分)的数字串联反应为true 符号(小数点分隔符),后跟由0到0(小数部分)的数字组成的任何字符串。

因此它将接受字符串为:

105或105.1或105.12或105.1231243123123123131231

好的,如何修改以前的正则表达式以仅接受表示最大2个十进制数字的字符串?

因此,例如:

必须接受105

105.1必须被接受

105.12必须被接受

但:

105.123不能被接受

\\.[0-9] 。旁边添加重复或范围量词。

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

[0-9]{1,2}应该匹配一位或两位数字。

尝试将pattern属性与RegExp ^\\d+$|^\\d+\\.\\d+{2}$this.checkValidity()

 $("#variazioneAnticipo").on("input", function() { if (this.checkValidity()) { $("label").html(""); var variazioneAnticipo = $(this).val(); console.log(variazioneAnticipo ,this.checkValidity()); } else { $("label").html("invalid input") } }) 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"> </script> <input id="variazioneAnticipo" class="rightAlligned form-control" style="width: 60%" type="number" step="0.01" min="0" value="${progetto.impAcc}" pattern="^\\d+$|^\\d+\\.\\d+{2}$"/> <label></label> 

下面的表达式仅匹配最多2个十进制数字的数字。

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

要获得更好的解释, 请单击此处

如果要自定义,只需修改重复范围即可 例如:

  1. 修改N和/或M以更改可接受的十进制数字范围。

    ^ \\ d +(?:。\\ d {N,M})?$

  2. 修改N和/或M以更改可接受的整数范围。

    ^ \\ d {N,M}(?:。\\ d {1,2})?$

遵循将相关的正则表达式应用于javascript test()指令的代码段。

 function testRegex(){ var data = $("#digits").val(); if(/^\\d+(?:\\.\\d{1,2})?$/.test(data)) alert("It's ok"); else{ alert("Sorry, it's not a valid input"); } } 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <input type="text" id="digits" /> <button onclick="testRegex();" type="button">Test it</button> 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM