js正则限制input框输入只能输入大于0的整数或者保留两位数的小数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js正则限制input框输入只能输入大于0的整数或者保留两位数的小数相关的知识,希望对你有一定的参考价值。

<input onkeyup="value=value.replace(/[^\d.]/g,'') "在此基础上更改!

<html>
<head>
<meta charset="UTF-8">

</head>
<body>
<input type="text" id="input" />
<script>
var input=document.getElementById("input");
function AddEventInput(i)
//这里就不做兼容了
i.addEventListener("blur",function()
var value=i.value;
var reg=/(^[1-9]1[0-9]*$)|(^[0-9]*\\.[0-9]2$)/
if(!reg.test(value))
console.log("请输入大于0的整数或者保留两位小数")
else
console.log("输入正确");
;
);

AddEventInput(input);
</script>
</body>
</html>

这里定义了一个函数AddEventInput有一个参数i其实就是需要传入的input节点

函数AddEventInput为传入的节点添加了失去焦点事件 

在失去焦点事件触发的函数中定义了一个正则 正则的意思我就不详细说了  

正则是当input的值是大于0的整数或者保留两位数的小数就返回true 不是就返回false

参考技术A

<html>
<head>
<meta charset="UTF-8">

</head>
<body>
<input type="text" id="input" />
<script>
var input=document.getElementById("input");
function AddEventInput(i)
//这里就不做兼容了
i.addEventListener("blur",function()
var value=i.value;
var reg=/(^[1-9]1[0-9]*$)|(^[0-9]*\\.[0-9]2$)/
if(!reg.test(value))
console.log("请输入大于0的整数或者保留两位小数")
else
console.log("输入正确");
;
);

AddEventInput(input);
</script>
</body>
</html>

这里定义了一个函数AddEventInput有一个参数i其实就是需要传入的input节点

函数AddEventInput为传入的节点添加了失去焦点事件 

在失去焦点事件触发的函数中定义了一个正则 正则的意思我就不详细说了  

正则是当input的值是大于0的整数或者保留两位数的小数就返回true 不是就返回false

    追答:<input onblur="value=value.replace(/^((\\d*[1-9])|(0?\\.\\d2))$/g,'') ">

    blur是焦点离开事件

参考技术B 你这个事件就有问题啊,直接关联到每次输入的时候,你怎么可能出现你要的情况呢?两位小数之前总得有一位小数的时候啊。没有人会先输入一个整数,然后才加小数点。而你这种判断时机只能这样。
应该加到blur上才好。匹配整数和两位小数的应该是^((\d*[1-9])|(0?\.\d2))$
0.11和 .11是等价的追问

这个完整写出来是什么样的呢?加上事件写出来下吗 ?谢谢!

追答



blur是焦点离开事件

以上是关于js正则限制input框输入只能输入大于0的整数或者保留两位数的小数的主要内容,如果未能解决你的问题,请参考以下文章

input框限制只能输入正整数,逻辑与和或运算

html或者php中 input框限制只能输入正整数,逻辑与和或运算

如何使用JS通过正则限制input输入框只能输入整数,小数两位小数

js怎么让input只能输入数字

js 正则验证输入框只允许输入正整数或者负整数?

input正则 常用正则(备用)