Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript正则表达式连续两次避免相同字符_Javascript_Regex - Fatal编程技术网

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,'@')