JavaScript 裡有一個功能是 .replace()
,可以用來替換文字。
在練習的時候遇到一個小地雷,寫起來以後自己參考。
一開始的想法是先來個一小段:
var s = "(text)";
document.write(s.replace("(text)", "TEST"));
然後結果會是 TEST
沒有問題。
但是如果寫成
var s = "(texts) (texts)";
document.write(s.replace("(texts)", "TESTS"));
結果卻是 TESTS (texts)
… XD
找了一下,原因是前面的參數可以是字串或 RegExp 。要取代多次,得用 RegExp …
所以重寫成
var s = "(texts) (texts)";
document.write(s.replace(/(texts)/ig, "TESTS"));
結果變成 (TESTS) (TESTS)
…XDDD
檢查了一下發現是沒對 ()
做 escape … XD 再改!
var s = "(texts) (texts)";
document.write(s.replace(/\(texts\)/ig, "TESTS"));
結果總算是自己要的 TESTS TESTS
了。
文章標籤
全站熱搜
留言列表