我试图在HTML模式属性中创建一个正则表达式,以便我的字符串只有4个字符,只有单词和数字,但没有字符重复3次或更多。
我想出了这个,但它只检查3个连续的字符,我也需要非连续的重复。
(?!.*([A-Za-z0-9])\1{2})[A-Za-z0-9]{4}此外,字符串应该不区分大小写,例如:
dadd - invalid,
dadD - also invalid,
dada - valid,
1121 - invalid,
1122 - valid我在网上找不到任何答案,现在我被困住了。
发布于 2018-03-12 13:23:22
传统上,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>
https://stackoverflow.com/questions/49202820
复制相似问题