前端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 位
$ 匹配输入的结束位置
- 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);
- }
- });
将这个正则表达式应用到输入框中,可以通过 oninput 事件监听输入框的变化,然后判断输入框的值是否符合正则表达式的规则。如果不符合,则禁止输入。以下是示例代码:
这样做可以在用户输入时动态地限制输入内容,保证输入的数据符合要求。
请采纳
可以使用如下正则表达式来限制输入框的输入内容:
/^(?!0\d|\.-|\.\.|-0\d|-)(?!.*\.\..*)(?!.*--.*)(?!.*-$)([1-9][0-9]*|0)(\.[0-9]{0,10})?$/
轩滕素安: 有时需要限制文本框输入内容的类型,本节分享下正则表达式限制文本框只能输入数字、小数点、英文字母、汉字等代码. 例如,输入大于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文件内,...