js的input框限制输入内容

本文介绍如何使用JavaScript控制文本框的输入类型,包括数字、英文、中文等,并提供了具体的实现代码。


想限制输入内容,于是找了这样一个blog,记录一下.




 JS 控制文本框只能输入数字
input onkeyup="value=value.replace(/[^0-9]/g,'')"onpaste="value=value.replace(/[^0-9]/g,'')" oncontextmenu ="value=value.replace(/[^0-9]/g,'')"

JS 控制文本框只能输入数字、小数点
input onkeyup="value=value.replace(/[^\0-9\.]/g,'')"onpaste="value=value.replace(/[^\0-9\.]/g,'')" oncontextmenu ="value=value.replace(/[^\0-9\.]/g,'')">

JS 控制文本框只能输入英文
input onkeyup="value=value.replace(/[^\a-\z\A-\Z]/g,'')"onpaste="value=value.replace(/[^\a-\z\A-\Z]/g,'')" oncontextmenu ="value=value.replace(/[^\a-\z\A-\Z]/g,'')">

JS 控制文本框只能输入英文、数字
input onkeyup="value=value.replace(/[^\a-\z\A-\Z0-9]/g,'')"onpaste="value=value.replace(/[^\a-\z\A-\Z0-9]/g,'')" oncontextmenu= "value=value.replace(/[^\a-\z\A-\Z0-9]/g,'')">

JS 控制文本框只能输入中文
input onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,'')"onpaste="value=value.replace(/[^\u4E00-\u9FA5]/g,'')" oncontextmenu= "value=value.replace(/[^\u4E00-\u9FA5]/g,'')">

JS 控制文本框只能输入中文、英文、数字
inputonkeyup="value=value.replace(/[^\a-\z\A-\Z0-9\u4E00-\u9FA5]/g,'')"onpaste="value=value.replace(/[^\a-\z\A-\Z0-9\u4E00-\u9FA5]/g,'')"oncontextmenu ="value=value.replace(/[^\a-\z\A-\Z0-9\u4E00-\u9FA5]/g,'')">

JS 控制文本框只能输入中文、英文、数字、空格
input onkeyup="value=value.replace(/[^\a-\z\A-\Z0-9\u4E00-\u9FA5\]/g,'')"onpaste="value=value.replace(/[^\a-\z\A-\Z0-9\u4E00-\u9FA5\]/g,'')" oncontextmenu ="value=value.replace(/[^\a-\z\A-\Z0-9\u4E00-\u9FA5\]/g,'')">

JS 控制文本框只能输入中文、英文、数字、小数点
inputonkeyup="value=value.replace(/[^\a-\z\A-\Z0-9\u4E00-\u9FA5\.]/g,'')"onpaste="value=value.replace(/[^\a-\z\A-\Z0-9\u4E00-\u9FA5\.]/g,'')"oncontextmenu ="value=value.replace(/[^\a-\z\A-\Z0-9\u4E00-\u9FA5\.]/g,'')">


总而言之:先在input标签里输入onkeyup="value=value.replace(/[^\X]/g,'')"然后在(/[\X]/g,'')里的X换成你想输入的代码就可以了,中文u4E00-u9FA5,数字0-9,英文a-z\A-Z,其它符号@、点或其它符号。也可以多个,用\隔开就行了。
例如:中英文 + 数字 + @符号 + 点符号  \a-\z\A-\Z0-9\u4E00-\u9FA5\@\.

若想在文本框里不能右键弹出菜单和不能粘贴进复制的信息的话
就要在input里输入 onpaste="return false" oncontextmenu="returnfalse;"

### 设置 Input 输入长度 对于不同类型的 `input` 元素,设置输入长度的方法有所不同。 #### 使用 HTML 的 `maxlength` 属性 对于文本类型的输入 (`<input type="text">`) 和电话号码类型的输入 (`<input type="tel">`) 可以直接使用 `maxlength` 属性来限制用户的输入长度[^1]: ```html <input type="text" maxlength="5" /> <input type="tel" maxlength="5" /> ``` 然而,当尝试将此属性应用于 `<input type="number">` 类型时,发现该属性不起作用。这是因为浏览器对数字类型有特殊的处理方式,并不支持通过 `maxlength` 来限定其内容的字符数量。 #### 利用 JavaScript 控制输入长度 为了实现对数值类输入的有效长度控制,可以通过监听事件的方式,在用户每次修改输入值之后立即检查并截断超出部分的内容。下面是一个针对 `<input type="number">` 实现的例子: ```javascript document.querySelector('input[type=number]').addEventListener('input', function (event) { const maxLength = 5; if (this.value.length > maxLength) this.value = this.value.slice(0, maxLength); }); ``` 或者采用内联脚本的形式指定给特定表单控件: ```html <input type="number" oninput="if(this.value.length>5)this.value=this.value.slice(0,5);" /> ``` 这种方法同样适用于其他任何允许自定义验证逻辑的情况。 #### Vue.js 中的应用场景 如果是在Vue项目里开发,则可能更倾向于利用架特性来做数据绑定和校验工作。例如,可以创建计算属性或watcher监控输入变化,并配合正则表达式过滤非法字符以及保持所需格式的同时达到限长目的[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值