Javascript 如果两个或多个重复字符
我尝试过的正则表达式包括:Javascript 如果两个或多个重复字符,javascript,angularjs,regex,Javascript,Angularjs,Regex,我尝试过的正则表达式包括: 1> var temp = "(.)\\1{2,}"; 2> var temp = "^(?!.*(.)\\1{2,})"; testExp = new RegExp(temp); 我得到的结果是: 1> var temp = "(.)\\1{2,}"; 2> var temp = "^(?!.*(.)\\1{2,})"; testExp = new RegExp
1> var temp = "(.)\\1{2,}";
2> var temp = "^(?!.*(.)\\1{2,})";
testExp = new RegExp(temp);
我得到的结果是:
1> var temp = "(.)\\1{2,}";
2> var temp = "^(?!.*(.)\\1{2,})";
testExp = new RegExp(temp);
testExp.test("sss is true")
testExp.test("ss is false")
testexp.test("sdsdsd is false") //which should be true.
这就是我的正则表达式只考虑连续的重复字符,而不考虑其他字符。尝试以下方法:
1> var temp = "(.)\\1{2,}";
2> var temp = "^(?!.*(.)\\1{2,})";
testExp = new RegExp(temp);
var str="sdsdsd";
var hasDuplicates = (/([a-zA-Z]).*?\1/).test(str)
alert("repeating string "+hasDuplicates);
您可以在
*
之前添加\1
(以匹配除换行符以外的任何0+字符),并使用以下正则表达式:
1> var temp = "(.)\\1{2,}";
2> var temp = "^(?!.*(.)\\1{2,})";
testExp = new RegExp(temp);
/(.)(?:.*\1){2,}/
或者,如果输入字符串中可能有换行符:
1> var temp = "(.)\\1{2,}";
2> var temp = "^(?!.*(.)\\1{2,})";
testExp = new RegExp(temp);
/([\s\S])(?:[\s\S]*\1){2,}/
看[\s\s]
(或JS regex中的[^]
将匹配任何字符,
将匹配除换行字符以外的任何字符
1> var temp = "(.)\\1{2,}";
2> var temp = "^(?!.*(.)\\1{2,})";
testExp = new RegExp(temp);
详细信息
1> var temp = "(.)\\1{2,}";
2> var temp = "^(?!.*(.)\\1{2,})";
testExp = new RegExp(temp);
-捕获组#1匹配任意1个字符()
-2次或多次连续出现:(?:.*\1){2,}
-除换行符以外的任何0+字符*
-反向引用组1值(与组1中捕获的字符相同)\1