我使用表达式来检测字符串中的重复一个字符。
if (str.replace(/[^@]/g, '').length > 1) {...}
现在,我希望检测到重复多个字符。
对于示例,让我们尝试检测@或#:
的重复项Wordwithone@here - match
Word@withduplicate@here - not
Word@withoneandone#here - match
是否可以使用regexp从一组字符中检测重复的字符? (@#as in sample)
答案 0 :(得分:2)
您在评论/([@])\1{2,}/ig
中的尝试将在字符串中搜索连续 @
。
只需要一个简单的修改就可以使它工作:
/([@#])[\s\S]*?\1/.test(inputString)
[\s\S]*?
或[\s\S]*
都有效,只是搜索顺序会有所不同:
*?
lazy ,因此搜索重复内容将从相邻字符开始。*
greedy ,因此搜索将从字符串中的最后一个字符开始。重点是允许任意数量的字符进入2个重复[\s\S]*
之间。我使用[\s\S]
来允许任何字符,而不是排除以下新行字符的.
:\n
,\r
,\u2028
和{{1} }。