"hand hand hand"想變換為"hand.gif hand.gif hand.gif"
開始用
str=str.replace("hand","hand.gif");
輸出:hand.gif hand hand
只替換了一次。。。:(
想到用正則,因為replace本來就可以用正則替換。
引用
返回根據正則表達式進行文字替換后的字符串的復制。
stringObj.replace(rgExp, replaceText)
于是寫
str = str.replace(/hand/,"hand.gif")
無效。。。
全部替換要加g,
str = str.replace(/hand/g,"hand.gif")
還是不行:(
參考了JavaScript的replace方法與正則表達式結合應用講解這篇文章后,終于明白,原來要用()括起來,才會替換()里的東東。正確的寫法如下:
str = "hand hand hand";
str=str.replace(/(hand)/g,"hand.gif");
document.write(str);
正確輸出:hand.gif hand.gif hand.gif。
JS的正則另一種寫法是使用RegExp:
如str=str.replace(/(hand)/g,"hand.gif");
等同于:
reg = new RegExp("(hand)","g");
str = str.replace(reg,'hand.gif');
reg需要動態生成時更適合使用這種方式。
擴展一下:
str = "hand'( hand'( hand'(";
str=str.replace(/(hand\'\()/g,"hand.gif");
document.write(str);
str = 'hand\'( hand\'( hand\'(';
str=str.replace(/(hand\'\()/g,"hand.gif");
document.write(str);
開始用
str=str.replace("hand","hand.gif");
輸出:hand.gif hand hand
只替換了一次。。。:(
想到用正則,因為replace本來就可以用正則替換。
引用
返回根據正則表達式進行文字替換后的字符串的復制。
stringObj.replace(rgExp, replaceText)
于是寫
str = str.replace(/hand/,"hand.gif")
無效。。。
全部替換要加g,
str = str.replace(/hand/g,"hand.gif")
還是不行:(
參考了JavaScript的replace方法與正則表達式結合應用講解
str = "hand hand hand";
str=str.replace(/(hand)/g,"hand.gif");
document.write(str);
正確輸出:hand.gif hand.gif hand.gif。
JS的正則另一種寫法是使用RegExp:
如str=str.replace(/(hand)/g,"hand.gif");
等同于:
reg = new RegExp("(hand)","g");
str = str.replace(reg,'hand.gif');
reg需要動態生成時更適合使用這種方式。
擴展一下:
str = "hand'( hand'( hand'(";
str=str.replace(/(hand\'\()/g,"hand.gif");
document.write(str);
str = 'hand\'( hand\'( hand\'(';
str=str.replace(/(hand\'\()/g,"hand.gif");
document.write(str);