HTML输入框仅包含特定数字

时间:2017-02-10 01:42:33

标签: javascript html input

我需要一个输入文本框,只能接受0和1的字符串,如00101110101。

<input type="number"></input>限制输入任何字母,但是,我们可以输入1,2,3,4等等。我需要将输入字符串限制为仅包含0和1。

用HTML或Javascript帮助做任何事情?

2 个答案:

答案 0 :(得分:3)

您可以使用正则表达式(/[^01]/g)和replace从输入值中删除01以外的任何内容。

document.getElementById("inp").oninput = function() {
  var v = this.value;           // get the value from the input
  v = v.replace(/[^01]/g, '');  // replace anything that isn't 0 or 1 by ''
  this.value = v;               // set the value of the input to the new value
}
<input id="inp"/>

如果您希望用户仍在中间编辑内容,请使用以下内容:

document.getElementById("inp").oninput = function() {
  var pos = this.selectionStart; // save the position of the caret
  
  var v = this.value;
  v = v.replace(/[^01]/g, '');
  this.value = v;
  
  this.selectionStart = pos; // restore it
  this.selectionEnd = pos;   // so no text will be selected
}
<input id="inp"/>

注意我不建议使用最后一种方法,因为我不确定有多少浏览器处理selectionStartselectionEnd

答案 1 :(得分:0)

这可能会对你有所帮助。

<input type="text" onkeypress='return event.charCode >= 48 && event.charCode <= 49'>

希望它会有所帮助。 问候。