Javascript正则表达式连续两次避免相同字符
我需要一个正则表达式,以避免连续两次使用相同的字符(@是字符),但可以在多个位置使用它们。 例如:Javascript正则表达式连续两次避免相同字符,javascript,regex,Javascript,Regex,我需要一个正则表达式,以避免连续两次使用相同的字符(@是字符),但可以在多个位置使用它们。 例如: 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\*\+]+)$/,其中第一组是姓,第二组是名。我在名字组中引入了一个神奇
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\*\+]+)$/
,其中第一组是姓,第二组是名。我在名字组中引入了一个神奇的字符@,在保存时我会用空格代替它。问题是我不能有连续的@符号
str.replace(/@@/g,'@')
查找“@”的所有实例并将其替换为“@”。如果连续有两个以上的“@”符号,也可以使用。不替换单个@符号或非@符号的事物
编辑:如果您不需要替换,但只想对其进行测试:
/@@/.test(str)
查找任何重复的字符(重复一次): 查找重复的@:
string.indexOf('@@') !== -1 // returns true if @@ is found
试试这个正则表达式
/^(?!.*(.)\1)[a-zA-Z][a-zA-Z\d@]*$/
此正则表达式不允许连续使用@
str.replace(/(@{2,})/g,'@')
适用于任意数量的场合。@@@、@、@@@etc您尝试了什么?它匹配任何重复的字符。我想问题是关于@角色的。您可能希望在回答中解决这个问题。@Reeno对此表示抱歉。我只是想解释更多。这符合任何重复的字符。我想问题是关于@角色的。你可能想在你的答案中解决这个问题。做了更改,看一看替换看起来也不错。我甚至可以在后端寻找连续的@s。但是我想在正则表达式中使用它,因为我允许使用一组特殊的字符。
str.replace(/(@{2,})/g,'@')