不连续重复3个字符

时间:2018-03-09 22:00:37

标签: html regex

我正在尝试在HTML模式属性中创建一个正则表达式,这样我的字符串只有4个字符,单词和数字,但没有重复3次或更多次字符。

我已经想出了这个,但它只检查了3个连续的字符,我也需要不连续重复。

_.chain()

此外,字符串应不区分大小写,例如:

(?!.*([A-Za-z0-9])\1{2})[A-Za-z0-9]{4}

我无法在网上找到任何答案,而且我现在卡住了。

1 个答案:

答案 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>