Javascript 正则表达式-不按顺序匹配重复字符

Javascript 正则表达式-不按顺序匹配重复字符,javascript,regex,Javascript,Regex,有没有办法匹配不在序列中的重复字符 假设我正在寻找至少两个6 var string = "61236"; 我只能在序列中找到匹配的零或一个或多个字符 谢谢。试试这个正则表达式: /(.).*?\1/ 下面是一个regexp,它与字符串中后跟相同数字的字符相匹配: /(.)(?=.*?\1)/ 用法: var test = '0612364'; test.match(/(.)(?=.*?\1)/)[0] // 6 演示: 这里有一个匹配,重复至少3次(总共4次以上) 演示:匹配6以及其他6

有没有办法匹配不在序列中的重复字符

假设我正在寻找至少两个6

var string = "61236";
我只能在序列中找到匹配的零或一个或多个字符


谢谢。

试试这个正则表达式:

/(.).*?\1/

下面是一个regexp,它与字符串中后跟相同数字的字符相匹配:

/(.)(?=.*?\1)/
用法:

var test = '0612364';
test.match(/(.)(?=.*?\1)/)[0] // 6
演示:

这里有一个匹配,重复至少3次(总共4次以上)


演示:

匹配6以及其他6之前的任何内容

!!"61236".match("6.*6")
// returns true

匹配6,直到另一组与第一组相同(即6)


不按顺序且多次出现的字符:

/(.)(.+\1)+/

可能会添加一个惰性限定符,以便在查找反向引用匹配之前,
*
不会一直向右匹配:
/(\d)(?=.*1)/
@MikeSamuel Added,谢谢。我似乎无法在正则表达式中添加最大数量的事件。有人有什么想法吗?我尝试了[^\1]而不是.,但这是字符1,尝试了{3,5},但它只与\d匹配.。要匹配最大值,您需要确保
*?
不匹配
\1
(?:(?!=\1)。*?
太棒了!它起作用了。非常感谢。该死的,你们跑得太快了。@MikeSamuel我在这期间试过了,但似乎不起作用:也许我犯了一个愚蠢的错误?它们也可以按顺序排列吗?是的。但没必要。那些是什么!!一开始你在干什么?是js吗?@KarlPokus它将匹配返回的值转换为布尔值。如果找到匹配项,则结果数组将转换为true,否则null将转换为false。
!!"61236".match(/(6).*\1/)
// returns true
/(.)(.+\1)+/