一个只能输入正数,负数,小数等数字的input框

自己做笔记用的
一个只能输入负数,小数的input框
css:

<input name="input_value" type="text" class="form-control value-input" value="">
<p class="error_msg"></p>
js部分:
​​​​​​​$(function () {
    $('.value-input').on("input propertychange", function () {
        validationNumber($(this),1);
    });
})

function validationNumber(_this,is_replace) {
    let num_value;
    num_value = replace_value(_this.val());
    _this.val(num_value);

    let rep = /^[\+\-]?\d+?\.?\d*?$/;
    if(!num_value.match(rep)){
        if(is_replace==1){
            _this.siblings(".error_msg").text('only numbers are allowed!');
        }
    }else{
        _this.siblings(".error_msg").text('');
    }
}

function replace_value(num_value) {
    if(num_value.indexOf("-") > 0){
        num_value = "-"+num_value.replace(/\-/g, '');
    }
    num_value = num_value.replace(/[^\d\.\-]/g,"");
    num_value = num_value.replace('.', '$#$').replace(/\./g, '').replace('$#$', '.').replace(/^\-?\./g, '');
    num_value = num_value.replace('-', '##').replace(/\-/g, '').replace('##', '-');
    num_value = num_value.replace(/^[^\-\d]/g, '');
    return num_value;
}

 

HTML输入本身不具备复杂的逻辑校验功能,它主要用于接收用户输入的内容。要实现您描述的输入限制,通常需要结合HTML与JavaScript来完成。可以通过HTML定义输入,并使用JavaScript添加事件监听器来检查用户输入的内容,确保其符合特定的格式要求。 以下是一个简单的实现示例: ```html <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <title>限制输入示例</title> <script> function checkInput() { // 获取输入的值 var inputValue = document.getElementById("numberInput").value; // 检查输入是否符合要求 if(inputValue === "" || inputValue === "-" || inputValue.match(/^\d*\.?\d+$/)) { // 符合要求,可以在这里添加其他处理逻辑 alert("输入符合要求!"); } else { // 不符合要求,提示用户 alert("请输入一个负数一个小数点正数还有零的数字!"); // 清空输入 document.getElementById("numberInput").value = ""; } } </script> </head> <body> <input type="text" id="numberInput" oninput="checkInput()"> </body> </html> ``` 在这个示例中,我们定义了一个文本输入,并通过`oninput`事件监听器在用户输入时触发`checkInput`函数。该函数使用正则表达式`/^\d*\.?\d+$/`来检查输入值是否为数字。如果输入为空字符串、负数或者包含小数点数字(可以是小数或整数),则认为输入有效。 注意,这个方法只能在前端进行简单的格式校验,并不能完全阻止用户绕过这些限制。为了确保数据的安全性和一致性,后端也应当进行相应的数据校验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值