如何准备正则表达式有两个条件

时间:2018-11-08 05:37:48

标签: javascript regex

能不能告诉我当不允许三个相同字符时的模式 我有一个名称字段,其中很少进行验证

  1. 名称中不应包含测试“文本”

我使用indexOf进行了检查。

  1. 名称中不得包含三个连续的字符,例如“ abc”,“ pqr”,“ xyz”
    1. 名称中不得包含相同的字符三次,例如“ aaa”,“ ccc”,“ zzz”

我们可以为此做一个正则表达式吗?我用Google搜索找不到它

我尝试过这样

val ='a'
var phonenoRegex = /^a-zA-Z+$/;
if(val.toLowerCase().indexOf('test') !=-1&& phonenoRegex.test(val)){
alert('false')
}else {
alert('true')
}

1 个答案:

答案 0 :(得分:0)

您可以使用正则表达式中的替代方法来完成所有这些操作。

if (/test|[^a-z]|(.)\1\1|abc|bcd|cde|def|...|wxy|xyz/i.test(val)) {
    alert('false');
} else {
    alert('true');
}

(.)\1\1匹配3个相同字符的重复; \1是对.所匹配字符的反向引用。您只需在regexp中简单列出所有字母作为替代字母即可测试连续字母(用我跳过的所有缺失字母替换...)。您不需要toLowerCase(),因为i选项使它不区分大小写。