Javascript 不超过2个连续数字不超过2个重复字符的正则表达式?
我希望创建一个具有以下条件的正则表达式:Javascript 不超过2个连续数字不超过2个重复字符的正则表达式?,javascript,regex,Javascript,Regex,我希望创建一个具有以下条件的正则表达式: 最小长度6 必须至少使用一个数字和一个字母 不超过2个连续数字(如123) 不超过2个重复字符 我能做到的 /^(?!.*([A-Za-z0-9!@#$&()\\-`.+,/?"])\1{2})(?=.*[a-z])(?=.*\d)[A-Za-z0-9!@#$&()\\-`.+,/?"]+$/ 这将验证字符串是否至少有一个数字和一个字母。 它不是连续的数字123,而是检查111。我不能在这里添加第四个条件 任何进一步的帮助都将不胜感
- 最小长度6
- 必须至少使用一个数字和一个字母
- 不超过2个连续数字(如123)
- 不超过2个重复字符
/^(?!.*([A-Za-z0-9!@#$&()\\-`.+,/?"])\1{2})(?=.*[a-z])(?=.*\d)[A-Za-z0-9!@#$&()\\-`.+,/?"]+$/
这将验证字符串是否至少有一个数字和一个字母。
它不是连续的数字123,而是检查111。我不能在这里添加第四个条件
任何进一步的帮助都将不胜感激。
提前感谢。试试这个正则表达式:
^(?=[\D]*\d)(?=[^a-zA-Z]*[a-zA-Z])(?=.{6,})(?!.*(\d)\1{2})(?!.*([a-zA-Z])(?:.*?\2){2,}).*$
说明:
jj112233 -Matches as it has atleast one letter, digit. Not more than 2 consecutive digits/letter. Has atleast 6 characters
jkhsfsndbf8uwwe -matches
a1234 -does not match as length<6
nsds312 -matches
111aaa222 -does not match as it has more than 2 consecutive digits and also more than 2 repeated letters
aa11bbsd -match
hgshsadh12 -does not match as it has more than 2 `h`
hh8uqweuu -does not match as it has more than 2 `u`
-字符串的开头^
-正向前瞻-检查是否存在数字(?=[\D]*\D)
-正向前瞻-检查是否存在字母(?=[^a-zA-Z]*[a-zA-Z])
-正向前瞻-检查是否至少存在6个文本(?=.{6,})
-负前瞻-检查是否缺少3个连续数字。但它允许两个连续数字。如果您甚至不需要两个连续数字,请从此部件中删除{2}(?!*(\d)\1{2})
-负前瞻-验证字符串中的字母不应出现超过2次(?!*([a-zA-Z])(?:*?\2){2,})
-捕获字符串*
-字符串结尾$
jj112233 -Matches as it has atleast one letter, digit. Not more than 2 consecutive digits/letter. Has atleast 6 characters
jkhsfsndbf8uwwe -matches
a1234 -does not match as length<6
nsds312 -matches
111aaa222 -does not match as it has more than 2 consecutive digits and also more than 2 repeated letters
aa11bbsd -match
hgshsadh12 -does not match as it has more than 2 `h`
hh8uqweuu -does not match as it has more than 2 `u`
jj112233-匹配,因为它至少有一个字母和数字。不超过2个连续数字/字母。至少有6个字符
jkhsfsndbf8uwwe-匹配
a1234-长度不匹配请尝试此正则表达式:
^(?=[\D]*\d)(?=[^a-zA-Z]*[a-zA-Z])(?=.{6,})(?!.*(\d)\1{2})(?!.*([a-zA-Z])(?:.*?\2){2,}).*$
说明:
jj112233 -Matches as it has atleast one letter, digit. Not more than 2 consecutive digits/letter. Has atleast 6 characters
jkhsfsndbf8uwwe -matches
a1234 -does not match as length<6
nsds312 -matches
111aaa222 -does not match as it has more than 2 consecutive digits and also more than 2 repeated letters
aa11bbsd -match
hgshsadh12 -does not match as it has more than 2 `h`
hh8uqweuu -does not match as it has more than 2 `u`
^
-字符串的开头
(?=[\D]*\D)
-正向前瞻-检查是否存在数字
(?=[^a-zA-Z]*[a-zA-Z])
-正向前瞻-检查是否存在字母
(?=.{6,})
-正向前瞻-检查是否至少存在6个文本
(?!*(\d)\1{2})
-负前瞻-检查是否缺少3个连续数字。但它允许两个连续数字。如果您甚至不需要两个连续数字,请从此部件中删除{2}
(?!*([a-zA-Z])(?:*?\2){2,})
-负前瞻-验证字符串中的字母不应出现超过2次
*
-捕获字符串
$
-字符串结尾
输出:
jj112233 -Matches as it has atleast one letter, digit. Not more than 2 consecutive digits/letter. Has atleast 6 characters
jkhsfsndbf8uwwe -matches
a1234 -does not match as length<6
nsds312 -matches
111aaa222 -does not match as it has more than 2 consecutive digits and also more than 2 repeated letters
aa11bbsd -match
hgshsadh12 -does not match as it has more than 2 `h`
hh8uqweuu -does not match as it has more than 2 `u`
jj112233-匹配,因为它至少有一个字母和数字。不超过2个连续数字/字母。至少有6个字符
jkhsfsndbf8uwwe-匹配
a1234-长度不匹配我能实现的-以及,这能实现什么。。。据我所知,所取得的成果是,至少必须使用一个数字和一个字母(如果你是说相邻的话,可能不超过两个重复字符),单独使用RegExp可能不会有帮助-它必须是一个RegExp答案吗?在这里,否定的前瞻可能很有用,但密码regex是一个问题,堆栈溢出已经很好地解决了。你自己做过研究吗?我对问题进行了编辑,使之更清楚。建议是否需要添加任何其他内容。@TimBiegeleisen我确实查看了已经回答的问题,并提出了我在问题中添加的内容。添加一些有效和无效的输入值我能够实现的内容
-以及,这实现了什么。。。据我所知,所取得的成果是,至少必须使用一个数字和一个字母(如果你是说相邻的话,可能不超过两个重复字符),单独使用RegExp可能不会有帮助-它必须是一个RegExp答案吗?在这里,否定的前瞻可能很有用,但密码regex是一个问题,堆栈溢出已经很好地解决了。你自己做过研究吗?我对问题进行了编辑,使之更清楚。建议是否需要添加其他内容。@TimBiegeleisen我确实查看了已回答的问题,并提出了我在问题中添加的内容。添加一些有效和无效的输入值感谢回答,但这无法捕获“不超过2个重复字符”。例如,“aa1aa1aa”‘a’的重复次数不应超过2次,但在这里重复了6次。@AmanGupta我已经更新了答案。我现在也添加了第四个条件。任何字母在字符串中的重复次数都不会超过2次。它与“不超过2个重复字符”正确匹配。虽然我还需要添加一些条件,例如123、4566等连续数字是不允许的。虽然我需要添加一些条件,如123、123、4566等连续数字是不允许的。为了匹配这些条件,我还需要添加一些条件,如123、456等连续数字,如123、4566等连续数字是不允许的。为了匹配这些条件,我做了以下的匹配,我做了这样做::/(((((!!!!!!!!!!!!!!!2012 2012 2012)01212)12 12(((((((!!!!!!!!!123)123)123)123)123)123)123)123!!!!!!!!!!!!123)123)123)123((((((((((!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!123)123)123)123)123)123)123)123)123)123)123)123)(^.{6,}$)/谢谢你的努力。谢谢你的回复,但这无法捕捉到“不超过2个重复字符”。例如,“aa1aa1aa”‘a’的重复次数不应超过2次,但在这里重复了6次。@AmanGupta我已经更新了答案。我现在也添加了第四个条件。任何字母在字符串中的重复次数都不会超过2次。它与“不超过2个重复字符”正确匹配。虽然我还需要添加一些条件,例如123、4566等连续数字是不允许的。虽然我需要添加一些条件,如123、123、4566等连续数字是不允许的。为了匹配这些条件,我还需要添加一些条件,如123、456等连续数字,如123、4566等连续数字是不允许的。为了匹配这些条件,我做了以下的匹配,我做了这样做::/(((((!!!!!!!!!!!!!!!2012 2012 2012)01212)12 12(((((((!!!!!!!!!123)123)123)123)123)123)123)123!!!!!!!!!!!!123)123)123)123((((((((((!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!123)123)123)123)123)123)123)123)123)123)123)123)谢谢你的努力。