我有一个看起来像这样的字符串:
"My favorite color is {color:tan}."
我试图弄清楚如何编写一个javascript函数,用我传入的任何颜色替换所有出现的令牌,但如果字符串太长,则默认为“tan”。
例如
var string = "My favorite color is {color:tan}.";
var favoriteColor = "red";
var maxLength = 25;
var tokenPrefix = "color"
var result = replaceToken(string, favoriteColor, maxLength, tokenPrefix);
现在 "result" 应该等于"My favorite color is red."
,因为字符串有 25 个字符长。
但如果我设置favoriteColor = "purple"
,那么结果应该等于"My favorite color is tan."
,因为“紫色”这个词会导致字符串长度超过 25 个字符。
我不熟悉正则表达式,所以我不确定这在正则表达式中是否可行,但我尝试使用 indexOf() 来查找令牌,但可能有多个实例。我也尝试了一个 replaceAll(),但因为它不是一个简单的字符串,所以它不会真正起作用。