我这里有一个输入框
<input type="text" size="9" maxlength="9" id="my_account" name="my_account" value="" >
我想禁止用户在框中输入相同的号码?我怎样才能做到这一点 ?提前致谢
我不希望他们能够输入这样的数字
111111111
or
55555555
答案 0 :(得分:2)
您可以使用正则表达式查找仅包含一个连续数字的字符串:
var validator = /\b(\d)\1+\b/
console.log(validator.test('111')) // true
console.log(validator.test('123')) // false
console.log(validator.test('121')) // false
console.log(validator.test('112')) // false
答案 1 :(得分:1)
@edit如果您不想让用户在键入时输入这些值,您可能只想在值等于2时验证。
你可以听取输入元素的keydown事件并验证它的实际内容和按下的数字如下:
var inputNode = document.getElementById('my_account');
inputNode.addEventListener('keydown', (event) => {
var inputValue = event.key;
var inputNodeValue = inputNode.value;
var length = inputNodeValue.length;
if (length === 1 && inputNodeValue[0] === inputValue) {
event.preventDefault();
}
});
如果你想在提交时验证,只需获取第一个字符的值,并检查彼此是否相等。
答案 2 :(得分:1)
尝试这种模式:
ssh root@PUBLIC_IP -p 2222
注意:
<input type="text" size="9" maxlength="9" id="my_account" name="my_account" value="" pattern="^(?!(\d)\1{8}).*">
替换为.*
\d*
^(?!\d*(\d)\1{2,}).*
“任何地方都不是3次相同但必须是数字”的示例:
^(?!(\d)\1*$).*
“不仅多次使用相同的数字而且仍然是数字”的示例:
<input type="text" size="9" maxlength="9" id="my_account" name="my_account" value="" pattern="^(?!\d*(\d)\1{2,})\d*">