我需要一个正则表达式来避免连续两次使用相同的字符(@是字符),但可以在多个地方使用它们。 例如:
someword@someword is ok
someword@@someword is not ok
someword@someword@someword is ok too.
所以基本上这是我现有的正则表达式/^([a-zA-Z0-9'\-\x80-\xff\*\+ ]+),([a-zA-Z0-9'\-\x80-\xff\*\+\@ ]+)$/
,其中第一个组是姓,第二个组是第一个名。我在名字组中引入了一个神奇的角色@,我将在保存时用空格替换。问题是我不能连续@符号。
答案 0 :(得分:5)
查找任何重复的字符(重复一次):
/(.)\1/.test(string) // returns true if repeated characters are found
寻找重复的@:
string.indexOf('@@') !== -1 // returns true if @@ is found
答案 1 :(得分:3)
str.replace(/@@/g,'@')
通过'@'查找并替换'@@'的所有实例。如果您有超过2个连续的'@'符号,也可以使用。不能替换单个@符号或不符合@符号的内容。
编辑:如果你不需要替换但只是想测试它:
/@@/.test(str)
答案 2 :(得分:2)
str.replace(/(@{2,})/g,'@')
适用于任意数量的事件.. @@,@ @ @,@@ @等等
答案 3 :(得分:1)
试试这个正则表达式
/^(?!.*(.)\1)[a-zA-Z][a-zA-Z\d@]*$/
此正则表达式不允许连续