JS用较小的文本替换长文本

时间:2015-05-28 08:46:12

标签: javascript jquery regex

我想将字符串中的substring替换为相同类型的较小字符串。例如:

This is a long text ------------------------------- . A sentence

所以我们看到-重复多次,我想将其替换为较小的chuck ----------(10次)

这是我尝试content = content.replace(/(-){20,}/, '$1');的内容,但它只替换为一个-

我也希望它能够与所有可能的角色一起工作(只有当它们重复时),而不仅仅是破折号。

由于

3 个答案:

答案 0 :(得分:1)

(-{10})-+

您可以使用它并替换为$1。请参阅演示。

https://regex101.com/r/tS1hW2/22

编辑:

((.)\2{9})\2+

请参阅演示。这适用于所有人。

https://regex101.com/r/tS1hW2/23

答案 1 :(得分:1)

您不需要$1

content.replace(/(-){20,}/g, '----------');

演示:http://jsfiddle.net/tusharj/ggbe2f5x/

答案 2 :(得分:1)

喜欢这个吗?



str = "" + 
  "foo ------------------------------------" + 
  "bar @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@" +
  "baz ====================================";

maxLen = 3;

str = str.replace(/(.)\1{19,}/g, function($0) {
  return $0.substr(0, maxLen);
});

document.write(str)