"rgb(%,%,%)".replace(/%/g, function() { return
Math.floor(Math.random()*255) })
了解到 replace() 的第二個參數也可以是個 function() 的話,有些討厭的字串接續動作也可以變成字串內插變數,而迎刃而解了,
如:
"Hello, %NAME, You got %NUMBER of junk mails".replace(/%NAME/g,
user_name).replace(/%NUMBER/g, Math.random() * 10000 + 1000)
用此方法來弄個迷你樣版系統也許不難喔。
On Mar 10, 4:56 am, "gugod" <gugod...@gmail.com> wrote:
> 了解到 replace() 的第二個參數也可以是個 function() 的話,有些討厭的字串接續動作也可以變成字串內插變數,而迎刃而解了,
> 如:
>
> "Hello, %NAME, You got %NUMBER of junk mails".replace(/%NAME/g,
> user_name).replace(/%NUMBER/g, Math.random() * 10000 + 1000)
呃,這個範例沒有用到 function,應該改寫為:
"Hello, %NAME, You got %NUMBER of junk mails".replace(/%([A-Z]+)/g,
function( word ) { return dict[word] })
replace 第二個參數中若為 function 的話,其參數便為正規表示式所捕捉到的值。