首頁  >  文章  >  web前端  >  JS的replace方法介紹_javascript技巧

JS的replace方法介紹_javascript技巧

WBOY
WBOY原創
2016-05-16 17:48:571053瀏覽

此函數的第一個參數是匹配模式的字串。接下來的參數 是與模式中的子表達式相符的字串,可以有 0 個或多個這樣的參數。接下來的參數是一個整數,宣告了符合在 stringObject 中出現的位置。最後一個參數是 stringObject 本身。
下文展示了幾種javascript正規表示式的repalce方式,有些方式我們很少在別的地方看到,如第二種和第三方中方法。

複製程式碼 程式碼如下:

//下面的範例用來取得url的兩個範例參數,並傳回urlRewrite之前的真實Url
var reg=new RegExp("(http://www.jb51.net/BookReader/)(\d ),(\d ).aspx","gmi") ;
var url="http://www.jb51.net/BookReader/1017141,20361055.aspx";
//方式一,最簡單常用的方式
var rep=url.replace( reg,"$1ShowBook.aspx?bookId=$2&chapterId=$3");
alert(rep);
//方式二,採用固定參數的回呼函數
var rep2=url.replace(reg ,function(m,p1,p2,p3){return p1 "ShowBook.aspx?bookId=" p3 "&chapterId=" p3});
alert(rep2);
//方式三,採用非固定參數的回呼函數
var rep3=url.replace(reg,function(){var args=arguments; return args[1] "ShowBook.aspx?bookId=" args[2] "&chapterId=" args[3] ;});
alert(rep3);
//方法四
//方式四和方法三很類似, 除了傳回替換後的字串外,還可以單獨取得參數
var bookId;
var chapterId;
function capText()
{
var args=arguments;
bookId=args[2];
chapterId=args[3]; return args[1] "ShowBook.aspx?bookId=" args[2] "&chapterId=" args[3];
}
var rep4=url.replace(reg,capText);
alert( rep4);
alert(bookId);
alert(chapterId);
//除了使用replace方法取得正規表示式的分組外,還可以使用test ,exec方法取得分組,只是手法有所不同而已
var reg2=new RegExp("(http://www.jb51.net/BookReader/)(\d ),(\d ).aspx","gmi");
var m= reg2.exec("http://www.jb51.net/BookReader/1017141,20361055.aspx");
var s="";
//取得所有的分組
for (i = 0; i s = s m[i] "n";
}
alert(s);
bookId=m[2];
chapterId =m[3];
alert(bookId);
alert(chapterId);
//使用test方法取得分組
var reg3=new RegExp("(http://www.jb51 .net/BookReader/)(\d ),(\d ).aspx","gmi");
reg3.test("http://www.jb51.net/BookReader/1017141,20361055.aspx" );
//取得三個分組
alert(RegExp.$1);
alert(RegExp.$2);
alert(RegExp.$3);
var str="www. baidu.com";
//str.format("好","q")
str.replace(new RegExp("(\.)(bai)du","g"),function( ){
for(var i=0;i{
document.write(arguments[i] "
");
}
document.write("--------------------------------------------- ----
");
});
兩個例子(證明,replace傳入正規參數和字元傳參數結果不同):
alert("123".replace( "1",function(){var un;return un;})); //彈出undefined23
alert("123".replace(new RegExp("1"),function(){var un;return un ;})); //彈出23

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn