4

我有一个只匹配字符串的一个字符的正则表达式。我想测试其包含字符串的长度,如果它大于 4,则进行替换。例如,正则表达式是/\d/. 我想使用 replace 的功能形式来匹配12345而不是1234.

就像是:

text.replace(regex, function(match) {
       if (STRING.length > 4)
            return replacement
       else
            return match;
  });

注意: /\d/只是一个例子。我没有提到真正的正则表达式来关注我的真正问题,如上图所示。

4

3 回答 3

5

或者,如果您想这样做:

function replaceWithMinLength (str, minLength) {
   str.replace(/\w+/, function(match) {
      if (match.length > minLength) {
        return match;
      } else {
        return str;
      }
   });
}
于 2013-04-28T13:52:18.623 回答
4

你是把马放在车前。你会更好:

if(string.length > 4) {
  string.replace('needle','replacement');
}
于 2013-04-28T13:48:40.733 回答
0

那么“包含字符串”是指相同的数字序列吗?一次匹配它们:

text.replace(/\d{5,}/g, function(string) {
    return string.replace(/\d/g, function(match) {
        return replacement;
    });
});

例如。\d{5,}可以很容易地适应任何类型的字符串。

于 2013-04-28T13:49:57.340 回答