我如何修改这个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脚本中,我有以下regex,它似乎可以检查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.31243123123131231
好的,我如何修改以前的正则表达式,使其只接受表示最多有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})?$
要获得更好的解释,请单击此处
如果你想自定义它,只需修改重复的范围。例如:
修改N和/或M以更改接受的小数范围。
^''d+(?:.''d{N,M})?$
修改N和/或M以更改接受的整数范围。
^''d{N,M}(?:.''d{1,2})?$
下面的代码段将相关的regex应用于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>
相关文章:
- 递增一个数字而不去掉前导零
- 制作一个regex来验证只有一个数字的字符串
- 如何使用至少一个数字、一个大写字母和6-20个字符验证密码
- 有没有办法在里面看到一个数字'的64位浮点IEEE754表示
- 我如何解析二's是一个数字的补码字符串
- 为什么我需要在这里输入var,为什么它会给我一个数字作为答案?(Javascript)
- 为什么 JavaScript 如果一个数字有一个前导零,就将其视为八进制
- 增加一个数字并将其附加到函数
- 如何让计算机猜测一个数字并返回猜测次数(Javascript)
- 正则表达式删除最后一个数字之后的字符串
- 用户在文本框中输入一个数字,并根据使用 PHP 输入的数字重定向到另一个网页
- 每次使用 Javascript 加载页面时增加一个数字(变量)的简单方法
- Javascript Regexp :如果一个字母与一个数字相邻,请添加下划线
- jQuery UI Slider ui.value 获取最后一个数字
- JavaScript 使用多少位来表示一个数字
- Javascript提示和警报输入一个数字,它将循环,您将输入数字以获得它的平均值
- RXJS 为什么只有最后一个数字同时有 a 和 b
- 检查字符串是否等于一个单词和一个数字
- 对负指数调用的.toFixed()返回一个数字,而不是字符串
- 脚本每天添加相同的数字,月底再添加一个数字