0

我需要一个正则表达式来避免连续两次使用相同的字符(@ 是字符),但可以在多个地方使用它们。例如:

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\*\+\@ ]+)$/,其中第一组是姓氏,第二组是名字。我在名字组中引入了一个神奇的字符@,我将在保存时用空格替换它。问题是我不能有连续的@ 符号。

4

4 回答 4

6

查找任何重复的字符(重复一次):

/(.)\1/.test(string) // returns true if repeated characters are found

寻找重复的@:

string.indexOf('@@') !== -1 // returns true if @@ is found
于 2013-11-06T13:04:55.963 回答
3
str.replace(/(@{2,})/g,'@')

适用于任意数量的事件..@@、@@@、@@@@ 等

于 2013-11-06T13:11:37.080 回答
2
str.replace(/@@/g,'@')

查找并用 '@' 替换所有 '@@' 实例。如果您有超过 2 个连续的“@”符号,也可以使用。不会替换单个 @ 符号或不是 @ 符号的东西。

编辑:如果您不必更换但只想对其进行测试:

/@@/.test(str)
于 2013-11-06T13:03:06.747 回答
1

试试这个正则表达式

/^(?!.*(.)\1)[a-zA-Z][a-zA-Z\d@]*$/

此正则表达式将不允许 @ 连续

于 2013-11-06T13:06:05.563 回答