POSTS
javascript正則表達式中用於replace
正則表達式我經常用,但是用的都是最基礎的,基本上都是用於驗證一個字符串的合理性。例如:
var m=”12345″;
var n=/^\d+$/;
if(n.test(m)) alert(‘ok’);
今天看了一個關於replace方法中用正則的例子,很有價值,可以輕鬆的實現諸如lenb和trim方法。
我想總結的不是這個,而是在replace中模式與$的替換,例如:
var m=eval(“/(northsnow)+/g”);
var n=”i am northsnow,I come from Jilin”;
var t=n.replace(m,”$1”);
alert(n);
則 得到:i am northsnow,I come from Jilin”;
括號裡面的模式匹配的結果會被提取出來放到$變量中,$1存儲第一個模式的匹配,$2存儲第二個模式的匹配,以此類推。
例如:
var m=”northsnow is a good man”;
var n=m.replace(/(\s)([a-z]+)/g,”$1″)
得結果:northsnow
var n=m.replace(/(\s)([a-z]+)/g,”$2″)
得結果:northsnowisagoodman
另外,還有一個\num可以用,這裡邊的num是一個整數,表示將第num個模式拿過來放到這裡。
如果(.)\1表示連續重複的兩個字符。
如果(.)\d*\1 表示有兩個相同的字符,中間夾了n個數字,n>=0
具體就不舉例子了。只要掌握了技巧,那麼就靠實踐來積累經驗了。