我正在尝试在HTML模式属性中创建一个正则表达式,这样我的字符串只有4个字符,单词和数字,但没有重复3次或更多次字符。
我已经想出了这个,但它只检查了3个连续的字符,我也需要不连续重复。
_.chain()
此外,字符串应不区分大小写,例如:
(?!.*([A-Za-z0-9])\1{2})[A-Za-z0-9]{4}
我无法在网上找到任何答案,而且我现在卡住了。
答案 0 :(得分:1)
传统上,HTML表单验证可以通过JavaScript完成。
如果表单字段(fname
)中的输入不符合正则表达式模式,则该函数会提醒消息,并返回false,以防止提交表单:
function validateForm() {
var str = document.forms["myForm"]["fname"].value;
const regex = /^(?!.*(.)(?:.*\1){2})[a-z0-9]{4}$/i;
let m;
if ((m = regex.exec(str)) == null) {
alert("Use the following format: 4 characters, words and numbers only, but with no character repeated 3 or more times.");
return false;
}
}
<form name="myForm" action="/action_page.php"
onsubmit="return validateForm()" method="post">
Name: <input type="text" name="fname">
<input type="submit" value="Submit">
</form>