Javascript 将输入限制为仅接受括号,而不接受字母或数字

Javascript 将输入限制为仅接受括号,而不接受字母或数字,javascript,html,Javascript,Html,它应该只接受输入中的括号。它不应该接受字母或数字 函数括号(){ var inp=document.getElementById(“输入”).value; var结果=document.getElementById(“strong”).value; console.log(inp,result) var l=0; var r=0; 对于(变量i=0;i

它应该只接受输入中的括号。它不应该接受字母或数字

函数括号(){
var inp=document.getElementById(“输入”).value;
var结果=document.getElementById(“strong”).value;
console.log(inp,result)
var l=0;
var r=0;
对于(变量i=0;i


您可以做的是将onchange事件侦听器添加到输入中。然后,当用户在输入上键入时,您可以验证输入是否为“(”或“)”,否则您可以清除输入框

通过检查键入的字符是否为括号来执行此操作,如果不是,则切掉最后一个字符

函数括号(){
var inp=document.getElementById(“输入”);
if(inp.value.slice(-1)!='('&&inp.value.slice(-1)!=')){
inp.value=inp.value.slice(0,-1);
}
}

说明:我使用了
键控
事件处理程序。无论何时按下该键,它都会检查是否有妄想症。如果不是,则不会在
input
元素中输入输入

这样做可以避免输入字符,检查是否为括号,如果不是,则删除:

document.getElementById(“输入”).addEventListener(“键下”),函数(事件){
如果(!(event.shiftKey&(event.key==”)| | event.key==“(”)){
event.preventDefault();
}
});
试试这个:

let inp=document.getElementById('input');
var结果=”;
inp.ADDEVENTLISTER('keyup',(e)=>{
if(inp.value[inp.value.length-1]==='(“| | inp.value[inp.value.length-1]==”){
结果+=输入值[inp.value.length-1]
}
console.log(结果)
返回结果
})

首先,我建议使用regexp和pattern属性

输入:无效{
边框:红色实心3px;
}

不能包含括号的输入


您到底想要什么?输入上的事件侦听器还是什么?我给你做了一个片段。请对其进行编辑,使其成为一个您不能在容器标记上使用值,也不能在输入上使用innerHTML的文件fields@barhatsor把问题再读一遍。它不应接受任何字符,但偏执除外:)