Javascript 只允许在输入字段中插入两种类型的字符
我有一个文本字段,其中我只需要Javascript 只允许在输入字段中插入两种类型的字符,javascript,php,html,Javascript,Php,Html,我有一个文本字段,其中我只需要1和0任何其他内容都会破坏我的逻辑代码 如何限制在输入字段中输入任何其他字符 我浏览了一些关于类似主题的帖子,但它们允许数字从0到9等等。 我尝试在html中使用模式属性,但是没有这样的模式,至少我没有找到它 我发现了以下代码: $(function(){ $('#BinaryInputArea').bind('input', function(){ $(this).val(function(_, v){
1
和0
任何其他内容都会破坏我的逻辑代码
如何限制在输入字段中输入任何其他字符
我浏览了一些关于类似主题的帖子,但它们允许数字从0到9等等。
我尝试在html中使用模式
属性,但是没有这样的模式,至少我没有找到它
我发现了以下代码:
$(function(){
$('#BinaryInputArea').bind('input', function(){
$(this).val(function(_, v){
return v.replace(/\s+/g, '');
});
});
});
这限制了空格
的输入,再次使用了似乎只有老兵才知道的模式。我尝试在.replace部分添加[2-9]
,但遗憾的是,这超出了我的逻辑范围
编辑:我使用文本区域进行输入,因此常规的输入模式:[0-1]
不起作用您可以使用正则表达式:
var txtInput=document.getElementById(“txtInput”);
txtInput.addEventListener(“向下键”,函数(evt){
var regEx=/^(0 | 1)$/;
//说明在全尺寸键盘上按0和1的两种方式
var key1=String.fromCharCode(evt.keyCode);
var key2=String.fromCharCode(evt.keyCode-48);//调整keydown事件
//针对正则表达式的测试键
if(!regEx.test(键1)和&!regEx.test(键2)){
evt.preventDefault();
}
});代码>
提交
您可以使用正则表达式执行此操作:
var txtInput=document.getElementById(“txtInput”);
txtInput.addEventListener(“向下键”,函数(evt){
var regEx=/^(0 | 1)$/;
//说明在全尺寸键盘上按0和1的两种方式
var key1=String.fromCharCode(evt.keyCode);
var key2=String.fromCharCode(evt.keyCode-48);//调整keydown事件
//针对正则表达式的测试键
if(!regEx.test(键1)和&!regEx.test(键2)){
evt.preventDefault();
}
});代码>
提交
如果您想使用javascript,可以执行以下操作:
<input type="text" onkeypress='return event.charCode >= 48 && event.charCode <= 49'>
</input>
编辑:好的,我的第一篇文章只是假装给出了一个例子,说明如何在线完成。但是您需要考虑很多细节,比如允许用户使用键盘键、复制和粘贴事件、删除字符等。您还应该控制用户是否粘贴无效值
下面是一个更详细的例子:
一行:
如果您想使用javascript,可以执行以下操作:
<input type="text" onkeypress='return event.charCode >= 48 && event.charCode <= 49'>
</input>
编辑:好的,我的第一篇文章只是假装给出了一个例子,说明如何在线完成。但是您需要考虑很多细节,比如允许用户使用键盘键、复制和粘贴事件、删除字符等。您还应该控制用户是否粘贴无效值
下面是一个更详细的例子:
一行:
如果在
element@guest271314嗯,表单将在没有输入数据时提交,但OP没有声明该字段是必需的。@ScottMarcus-Hmm,按SHIFT+`+(任意键)我似乎能够插入任何相应的字符。我可以通过复制和粘贴(手动)插入其他符号。@Dice您使用的浏览器是什么(可能是FF)?是的,答案并不涉及粘贴内容。我将更新该场景。@Dice什么版本?我正在运行Chrome 62,它运行得很好。而且,我知道该代码至少可以追溯到v30-ish。如果在
element@guest271314嗯,表单将在没有输入数据时提交,但OP没有说明该字段是必需的。@ScottMarcus-Hmm,通过按SHIFT+`+(任意键),我似乎能够插入任何相应的字符。我可以通过复制和粘贴(手动)插入其他符号。@Dice您使用的浏览器是什么(可能是FF)?是的,答案并不涉及粘贴内容。我将更新该场景。@Dice什么版本?我正在运行Chrome 62,它运行得很好。而且,我知道这段代码可以一直工作到至少v30-ish.HTML事件属性,比如不应该使用onkeypress
,onclick
,等等。20年前我们就是这样做的。你今天不应该使用它们。此外,您还没有考虑到在全尺寸键盘上输入0
和1
有两种方法。此外,charCode
有利于keyCode
。哦,input
没有结束标记。HTML事件属性,例如onkeypress
,lickonc
,等等,不应使用。20年前我们就是这样做的。你今天不应该使用它们。此外,您还没有考虑到在全尺寸键盘上输入0
和1
有两种方法。此外,charCode
有利于keyCode
。哦,input
没有结束标记。