2014-10-29 85 views
2

我尝试用一​​个缩写..替换一些多个字符串。 如果一个字符串出现超过2次,那么就用string..string来代替。 例如字符串如下:用正则表达式替换多个字符串

​​

这里是我的方法,但它不工作正确的:

str = str.replace(/((,\w+)){3,}/igm, ',$1...$1'); 

你有什么想法,我怎么能做到这一点吗? 谢谢。

回答

5

肯定的:

(\b\w+)(?:,\1){2,} 

Demo

被要求什么是所有的话是一样的,所以你必须在模式中使用反向引用。

+0

谢谢,它的作品:)。 – user3417601 2014-10-29 13:03:42

+0

然而,还有一些人声称,正则表达式不是,实际上,是一种黑暗的艺术...... – 2014-10-29 13:04:13

+0

@David正则表达式是伟大的,一旦你把握他们,他们可以使许多事情变得如此简单;) – 2014-10-29 13:06:46