2016-11-05 11 views
0

文字列のトークン「[RANDOMNUMBER]」を置き換えようとしていますが、コードが機能していませんか?正規表現は、オンライン検証ツールをチェックするときに有効と表示されますか?私はそれが愚かな間違いでなければならないことを知っていますが、私はそれを見ませんか?シンプルなJavaScript Regex replaceがトークンで角括弧で動作していませんか?

function detokenizeTags(imgSrc){ 
    var rn = Math.random() + "", 
    rnd = rn * 10000000000000; 
    imgSrc.replace(/\[RANDOMNUMBER\]/g,rnd); 
    return imgSrc; 
} 

サンプル入力列://ad.amgdgt.com/ads/?t=ap & PX = 79079 & rndn = [RANDOMNUMBER]

+0

する必要があり、どのようにそれを正確に呼び出されていますか? – epascarello

答えて

1

問題は交換が元の文字列を変更しないという事実です。

imgSrc.replace(/\[RANDOMNUMBER\]/g,rnd); 

imgSrc = imgSrc.replace(/\[RANDOMNUMBER\]/g,rnd); 

function detokenizeTags(imgSrc){ 
 
    var rn = Math.random() + "", 
 
    rnd = rn * 10000000000000; 
 
    return imgSrc.replace(/\[RANDOMNUMBER\]/g,rnd); 
 
} 
 

 
var str = "//ad.amgdgt.com/ads/?t=ap&px=79079&rndn=[RANDOMNUMBER]"; 
 

 
console.log(str, detokenizeTags(str));

+0

私は何か愚かなことをしていることを知っていた!それは私がほぼ2日間上がっていることで得られるものです!とても有難い! –

0

.replace文字列を変更しない、それはA返します新しい文字列。代わりに:

imgSrc.replace(/\[RANDOMNUMBER\]/g,rnd); 
return imgSrc; 

はただ試してみてください。

return imgSrc.replace(/\[RANDOMNUMBER\]/g,rnd); 
関連する問題