正则表达式仅由重复的字符组成的字符串

时间:2016-02-07 02:38:10

标签: javascript regex

我需要创建一个验证来确定字符串是否仅由重复的字符组成。所以,例如它会抓住“pp”而不是“快乐”。

到目前为止,我可以使用以下方法检查重复字符:

/(.)\1+/.test(value);

如何将此正则表达式更改为仅捕获“pp”而不是“快乐”?正则表达式是最好的方法吗?

2 个答案:

答案 0 :(得分:6)

你的正则表达式几乎是有效的,你只需要在开头和结尾分别添加^$,以确保字符串不包含任何其他字符:

/^(.)\1+$/.test(value);

另请参阅Regex101 demo

答案 1 :(得分:1)

逆也应该起作用..即,此正则表达式应匹配包含两个非重复字符或空字符串的字符串。在正则表达式进行反向匹配之前,存在否定!

> !/(.)(?!\1).|^$/.test('happy')
false
> !/(.)(?!\1).|^$/.test('')
false
> !/(.)(?!\1).|^$/.test('pp')
true
> !/(.)(?!\1).|^$/.test('ppo')
false
> !/(.)(?!\1).|^$/.test('ppppppppp')
true
> 

DEMO