前端js 输入框限制(只能输入数字,10位小数,除0[0-9]、.、--、-0[0-9]、-.不能开头外,其他的都可以)?

作者&投稿:欧尝 (若有异议请与网页底部的电邮联系)
~

可以使用如下正则表达式来限制输入框的输入内容:

/^(?!0\d|\.-|\.\.|-0\d|-)(?!.*\.\..*)(?!.*--.*)(?!.*-$)([1-9][0-9]*|0)(\.[0-9]{0,10})?$/

该正则表达式的解释如下:

  • ^:匹配输入的字符串开头。

  • (?!0\d|\.-|\.\.|-0\d|-):负向先行断言,表示输入的字符串不能以 0 开头、.-、..、-0 开头或 - 结尾。

  • (?!.*\.\..*)(?!.*--.*):负向先行断言,表示输入的字符串不能包含两个及以上的连续 . 或 --。

  • (?!.*-$):负向先行断言,表示输入的字符串不能以 - 结尾。

  • ([1-9][0-9]*|0):表示输入的字符串必须为数字,可以以 0 或者 1-9 开头,后面跟着 0 个或多个数字。

  • (\.[0-9]{0,10})?:表示输入的字符串可以包含小数点和最多 10 位小数。

  • $:匹配输入的字符串结尾。

  • 可以将该正则表达式应用到输入框的 oninput 或 onkeydown 事件中,以便实时验证用户输入的内容,并在输入不符合要求时阻止输入。例如:

const input = document.querySelector('#myInput');

input.addEventListener('input', (event) => {

const value = event.target.value;

const isValid = /^(?!0\d|\.-|\.\.|-0\d|-)(?!.*\.\..*)(?!.*--.*)(?!.*-$)([1-9][0-9]*|0)(\.[0-9]{0,10})?$/.test(value);

if (!isValid) {

event.target.value = value.slice(0, -1); // 阻止输入

}

});

在这个例子中,我们首先获取了一个 id 为 myInput 的输入框,并添加了一个 input 事件监听器。在事件处理程序中,我们获取了输入框的值,并使用正则表达式对其进行验证。如果验证失败,我们阻止输入,即将输入框的值设为原来的值减去最后一位。这样,就能够实现对输入框的限制。



可以使用正则表达式来实现输入框限制,以下是一个符合要求的正则表达式:

javascriptCopy code/^(?!0\d)(?!.*\.\.)(?!.*\-\-)(?!0+\d)(?!.*\-\.)[1-9]\d*(\.\d{1,10})?$/

解释一下:

  • ^ 匹配输入的开始位置

  • (?!0\d) 除了 0[0-9],0 不能作为第一个数字

  • (?!.*\.\.) 不能输入两个以上的点

  • (?!.*\-\-) 不能输入两个以上的减号

  • (?!0+\d) 除了 0 开头的数字,其他数字开头不能有多余的 0

  • (?!.*\-\.) 不能输入减号和点组合,例如 -.12

  • [1-9]\d* 匹配数字,第一位不能为 0

  • (\.\d{1,10})? 匹配小数,小数点后最多 10 位

  • $ 匹配输入的结束位置

  • 将这个正则表达式应用到输入框中,可以通过 oninput 事件监听输入框的变化,然后判断输入框的值是否符合正则表达式的规则。如果不符合,则禁止输入。以下是示例代码:

  • javascriptCopy codeconst input = document.querySelector('#input');

  • input.addEventListener('input', () => {  const regex = /^(?!0\d)(?!.*\.\.)(?!.*\-\-)(?!0+\d)(?!.*\-\.)[1-9]\d*(\.\d{1,10})?$/;  const value = input.value.trim();  if (!regex.test(value)) {

  •    input.value = value.slice(0, -1);

  •  }

  • });

  • 这样做可以在用户输入时动态地限制输入内容,保证输入的数据符合要求。



请采纳
可以使用如下正则表达式来限制输入框的输入内容:
/^(?!0\d|\.-|\.\.|-0\d|-)(?!.*\.\..*)(?!.*--.*)(?!.*-$)([1-9][0-9]*|0)(\.[0-9]{0,10})?$/


德令哈市15072449835: js怎么让input只能输入数字 -
轩滕素安: 有时需要限制文本框输入内容的类型,本节分享下正则表达式限制文本框只能输入数字、小数点、英文字母、汉字等代码. 例如,输入大于0的正整数 <input onkeyup="if(this.value.length==1){this.value=this.value.replace(/[^1-9]/g,'')}else{this....

德令哈市15072449835: 在javascript中怎样在文本框中限制只能填入数字 -
轩滕素安: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns=" http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/...

德令哈市15072449835: js验证如何限制文本框只能输入数字 -
轩滕素安: js进行数据校验使用正则表达式会简单很多,如下所示: 1.js验证只能输入数字: 具体代码如下: function check_validate1(value){ var reg = /^/d+$/; // 定义正则表达式 if( value.constructor === String ){ // 判断传入的是否是字符串 var re = value....

德令哈市15072449835: 用JS限制文本框只能输入数字,并给予提示,(纯JavaScript) -
轩滕素安: function check(){<br>var value = document.getElementById("inputId").value;<br>var reg=/^[1-9]\d*$|^0$/; // 注意:故意限制了 0321 这种格式,如不需要,直接reg=/^\d+$/;<br>if(reg.test(value)==true){<br> alert("都是数字!通过");<br> return true;<br>}else{<br> alert("不是纯数字!失败!");<br> return false;<br>}<br>}<br><br>方法通过 onblur调用

德令哈市15072449835: 如何用js限定文本框只能输入数字和小数点,且只能输入小数点后两位 -
轩滕素安: 限制文本框只能输入正数,负数,小数 onkeyup="value=value.replace(/[^\-?\d.]/g,'')" 限制文本框只能输入正数,小数 onkeyup="value=value.replace(/[^\d.]/g,'')"

德令哈市15072449835: javascript怎么过滤文本框的输入!让用户输入的不能是数字和字母! -
轩滕素安: <HTML><br><HEAD><br><TITLE>文本框只允许输入数字</TITLE><br></HEAD><br><br><style><br><br>.TextBox_NotDragpaste<br><br>{<br> ime-mode:disabled; //禁止输入法<br> ondragenter:expression(ondragenter=function(){return false...

德令哈市15072449835: 如何使用JS通过正则限制input输入框只能输入整数,小数两位小数 -
轩滕素安: 第一: 限制只能是整数<br><input type = "text" name= "number" id = 'number' onkeyup= "if(! /^d+$/.test(this.value)){alert('只能整数');this.value='';}" /><br><br>如果不是整数就直接alert<br><br>第二: 限制是两位的小数<br><input type = ...

德令哈市15072449835: 求一段JS代码 禁止粘贴只能输入数字 -
轩滕素安: <body onpaste="return false">//禁止粘贴 //只能输入数字,其余无法输入 <script language="javascript"> function isDigit() {return ((event.keyCode>=48)&&(event.keyCode<=57)); }</script> <input type="text" name="text" onkeypress="event.returnValue = isDigit();">

德令哈市15072449835: JS控制输入框只能输入数字
轩滕素安: function isNumber(oNum) { if(!oNum) return false; var strP=/^\d+(\.\d+)?$/; if(!strP.test(oNum)) return false; try{ if(parseFloat(oNum)!=oNum) return false; } catch(ex) { return false; } return true; }

德令哈市15072449835: 用JS控制一个输入框,要求里面只能输入字数并且长度必须是11位,以下操作有问题,应该怎么改正 -
轩滕素安: 1、新建一个html文件,命名为test.html.2、在test.html文件内,在p标签内,使用input标签创建一个数字输入框,用于数字的输入.3、在test.html文件内,设置input标签的id为num,主要用于下面通过该id获得input对象.4、在test.html文件内,...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网