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
没有结束标记。