仅在包含的字符串长度大于X时替换

时间:2013-04-28 13:45:22

标签: javascript regex

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

类似的东西:

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

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

3 个答案:

答案 0 :(得分:3)

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

if(string.length > 4) {
  string.replace('needle','replacement');
}

答案 1 :(得分:3)

或者如果你想这样做:

function replaceWithMinLength (str, minLength) {
   str.replace(/\w+/, function(match) {
      if (match.length > minLength) {
        return match;
      } else {
        return str;
      }
   });
}

答案 2 :(得分:0)

所以通过“包含字符串”,你的意思是相同的数字序列?一次匹配它们:

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

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