Javascript 仅由重复字符组成的字符串的正则表达式
我需要创建一个验证来确定字符串是否只由重复的字符组成。例如,它会捕捉到“pp”,但不会捕捉到“happy” 到目前为止,我可以使用以下方法检查重复字符:Javascript 仅由重复字符组成的字符串的正则表达式,javascript,regex,Javascript,Regex,我需要创建一个验证来确定字符串是否只由重复的字符组成。例如,它会捕捉到“pp”,但不会捕捉到“happy” 到目前为止,我可以使用以下方法检查重复字符: /(.)\1+/.test(value); 我怎样才能将这个正则表达式改为只捕捉“pp”而不捕捉“happy”?正则表达式是最好的方法吗?您的正则表达式几乎有效,您只需在开头和结尾分别添加^和$,以确保字符串不包含任何其他字符: /^(.)\1+$/.test(value); 另请参见a.反向也应起作用。。也就是说,这个正则表达式应该匹配一
/(.)\1+/.test(value);
我怎样才能将这个正则表达式改为只捕捉“pp”而不捕捉“happy”?正则表达式是最好的方法吗?您的正则表达式几乎有效,您只需在开头和结尾分别添加
^
和$
,以确保字符串不包含任何其他字符:
/^(.)\1+$/.test(value);
另请参见a.反向也应起作用。。也就是说,这个正则表达式应该匹配一个包含两个非重复字符或空字符串的字符串。否定
代码>在正则表达式进行反向匹配之前存在
> !/(.)(?!\1).|^$/.test('happy')
false
> !/(.)(?!\1).|^$/.test('')
false
> !/(.)(?!\1).|^$/.test('pp')
true
> !/(.)(?!\1).|^$/.test('ppo')
false
> !/(.)(?!\1).|^$/.test('ppppppppp')
true
>
您的意思是,如果后面的字符与第一个不同,则返回true。如果所有后续字符都相同,那么这在哪些方面比只说return true的regexp更好?