我有一个只能匹配字符串中一个字符的正则表达式。我想测试其包含字符串的lentgh,如果它大于4,则进行替换。例如,正则表达式是/\d/
。我想使用替换的功能形式来匹配12345
但不匹配1234
。
类似的东西:
text.replace(regex, function(match) {
if (STRING.length > 4)
return replacement
else
return match;
});
注意:
/\d/
只是一个例子。我没有提到真正的正则表达式,专注于我的真实问题,如上所示。
答案 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,}
可以很容易地适应任何类型的字符串。