次のような文字列があります。
"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);
"My favorite color is red."
文字列の長さが 25 文字であるため、 "result" は と等しくなるはずです。
しかし、 を設定favoriteColor = "purple"
すると、結果は と等しくなるはず"My favorite color is tan."
です。これは、「紫」という単語によって文字列が 25 文字より長くなるためです。
私は正規表現に詳しくないので、これが正規表現で可能かどうかはわかりませんが、indexOf() を使用してトークンを見つけようとしましたが、複数のインスタンスがある可能性があります。replaceAll() も試してみましたが、単純な文字列ではないため、うまくいきません。