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

时间:2020-09-29 06:12:51

标签: javascript html

它仅应在输入内部接受括号。它不能接受字母或数字

function brackets() {
  var inp = document.getElementById("input").value;
  var result = document.getElementById("strong").value;
console.log(inp,result)
  var l = 0;
  var r = 0;
  for (var i = 0; i < inp.length; i++) {
    if (inp[i] === "(") {
      l++;
    } else if (inp[i] === ")") {
      r++;
    }
  }
  console.log(l,r)
  if (l == r) {
    document.getElementById("strong").innerHTML = "Matched";
  } else if (l !== r) {
    document.getElementById("strong").innerHTML = "Not matched";
  }

}
document.getElementById("input").addEventListener("input",brackets);
<input type="text" id="input" />
<span id="strong"></span>

5 个答案:

答案 0 :(得分:1)

说明::我使用了keydown事件处理程序。每当按下该键时,它都会检查是否为 paranthesis 。如果不是这样,则不会在input元素内输入输入。

执行此操作将避免输入字符,检查它是否不是括号,否则将其删除:

document.getElementById("input").addEventListener("keydown", function(event) {
  if (!(event.shiftKey && (event.key == ")" || event.key == "("))) {
    event.preventDefault();
  }
});
<input type="text" id="input" />

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

slice() Docs

list1 = [122, 124, 155, 331(#N/A), 982(#N/A)]
list2 = [122, 124, 444(#N/A)]
list3 = [2(#N/A), 122, 123, 124, 133(#N/A), 155, 332(#N/A), 621(#N/A), 667(#N/A), 982(#N/A)]

and then I guess they would all be in lists again, so, lists.add(list1, list2, list3).
function brackets() {
  var inp = document.getElementById("input");

  if (inp.value.slice(-1) != '(' && inp.value.slice(-1) != ')') {
    inp.value = inp.value.slice(0, -1);
  }
}

答案 3 :(得分:0)

尝试一下:

let inp = document.getElementById('input');
var result = "";

inp.addEventListener('keyup', (e) => {

    if(inp.value[inp.value.length - 1] === '(' || inp.value[inp.value.length - 1] === ')'){
        result += inp.value[inp.value.length - 1]           
    }
    console.log(result)
    return result
    
})
<input id="input">

答案 4 :(得分:0)

首先,我建议使用regexp和pattern属性。 https://www.w3schools.com/tags/att_input_pattern.asp

input:invalid {
  border: red solid 3px;
}
<!DOCTYPE html>
<html>
<head>
</head>
<body>

<p>An input that CANNOT contain parenthesis</p>

<input type="search" id="search" name="search" pattern="[^()]+" title="Invalid input">


</body>
</html>