日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

html5 replace,js replace函数用法详解

發布時間:2023/12/14 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 html5 replace,js replace函数用法详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

如何正確使用js replace函數呢?

例如,str = str.replace(",", "\\");

只替換第一個遇到的“,”。

一,javascript replace() 方法

定義和用法

replace() 方法用于在字符串中用一些字符替換另一些字符,或替換一個與正則表達式匹配的子串。

語法stringobject.replace(regexp/substr,replacement)regexp/substr

必需。規定子字符串或要替換的模式的 regexp 對象。

請注意,如果該值是一個字符串,則將它作為要檢索的直接量文本模式,而不是首先被轉換為 regexp 對象。

replacement必需。一個字符串值。規定了替換文本或生成替換文本的函數。返回值

一個新的字符串,是用 replacement 替換了 regexp 的第一次匹配或所有匹配之后得到的。

說明

字符串 stringobject 的 replace() 方法執行的是查找并替換的操作。它將在 stringobject 中查找與 regexp 相匹配的子字符串,然后用 replacement 來替換這些子串。如果 regexp 具有全局標志 g,那么 replace() 方法將替換所有匹配的子串。否則,它只替換第一個匹配子串。(ps:這里是要注意的)

replacement 可以是字符串,也可以是函數。如果它是字符串,那么每個匹配都將由字符串替換。但是 replacement 中的 $ 字符具有特定的含義。如下表所示,它說明從模式匹配得到的字符串將用于替換。

$1、$2、...、$99與 regexp 中的第 1 到第 99 個子表達式相匹配的文本。$&與 regexp 相匹配的子串。$`位于匹配子串左側的文本。$'位于匹配子串右側的文本。$$直接量符號。

注意:ecmascript v3 規定,replace() 方法的參數 replacement 可以是函數而不是字符串。在這種情況下,每個匹配都調用該函數,它返回的字符串將作為替換文本使用。該函數的第一個參數是匹配模式的字符串。接下來的參數是與模式中的子表達式匹配的字符串,可以有 0 個或多個這樣的參數。接下來的參數是一個整數,聲明了匹配在 stringobject 中出現的位置。最后一個參數是 stringobject 本身。

下面介紹幾個js replace函數的例子,以鞏固對js replace函數的理解。(jquery中文網 www.jquerycn.cn)

例子 1

將使用 "w3school" 替換字符串中的 "microsoft":

復制代碼 代碼示例:

輸出:

visit w3school!

例子 2

將執行一次全局替換,每當 "microsoft" 被找到,它就被替換為 "w3school":

復制代碼 代碼示例:

var str="welcome to microsoft! "

str=str + "we are proud to announce that microsoft has "

str=str + "one of the largest web developers sites in the world."

document.write(str.replace(/microsoft/g, "w3school"))

輸出:

welcome to w3school! we are proud to announce that w3schoolhas one of the largest web developers sites in the world.

例子 3

您可以使用本例提供的代碼來確保匹配字符串大寫字符的正確:

復制代碼 代碼示例:

text = "javascript tutorial";

text.replace(/javascript/i, "javascript");

例子 4

將把 "doe, john" 轉換為 "john doe" 的形式:

復制代碼 代碼示例:

name = "doe, john";

name.replace(/(\w+)\s*, \s*(\w+)/, "$2 $1");

例子 5

將把所有的花引號替換為直引號:

復制代碼 代碼示例:

name = '"a", "b"';

name.replace(/"([^"]*)"/g, "'$1'");

例子 6

將把字符串中所有單詞的首字母都轉換為大寫:

復制代碼 代碼示例:

name = 'aaa bbb ccc';

uw=name.replace(/\b\w+\b/g, function(word){ return word.substring(0,1).touppercase()+word.substring(1);} );

自己的運用:

文中有提到replace像c#那樣使用的話,只替換第一個匹配的字符,只有標志全局標志g,才會替換全部的。

文中我對這段話進行了標識。

開始對于 全局標志 g ,開始還不是很清楚,后來發現 text.replace(/javascript/g, "javascript");

前一個參數?? /要轉換的字/g?? 第二個參數是要替換為的字符串。

對于替換反斜杠“\” 的話,就是用這種方式?? text = text.replace(/\\/g, "\\\\");

二,js replace方法使用介紹

replace() 方法的參數 replacement 可以是函數而不是字符串。在這種情況下,每個匹配都調用該函數,它返回的字符串將作為替換文本使用。

該函數的第一個參數是匹配模式的字符串。接下來的參數 是與模式中的子表達式匹配的字符串,可以有 0 個或多個這樣的參數。

接下來的參數是一個整數,聲明了匹配在 stringobject 中出現的位置。最后一個參數是 stringobject 本身。

以下演示了幾種javascript正則表示式的repalce方式。

復制代碼 代碼示例:

//獲取url的兩個參數,并返回urlrewrite之前的真實url

var reg=new regexp("(http://www.jquerycn.cn/bookreader/)(\\d+),(\\d+).aspx","gmi");

var url="http://www.jquerycn.cn/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.jquerycn.cn/bookreader/)(\\d+),(\\d+).aspx","gmi");

var m=reg2.exec("http://www.jquerycn.cn/bookreader/1017141,20361055.aspx");

var s="";

//獲取所有的分組

for (i = 0; i < m.length; 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.jquerycn.cn/bookreader/)(\\d+),(\\d+).aspx","gmi");

reg3.test("http://www.jquerycn.cn/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

三,js中replace方法的例子

replace() 方法用于將字符串用一些字符替換另一些字符,或替換一個與正則表達式匹配的子串。

注意:如果用正則表達式替換時, regexp 具有全局標志 g,那么 replace() 方法將替換所有匹配的子串。否則,它只替換第一個匹配子串。

js replace方法的例子:

復制代碼 代碼示例:

var strm = "javascript is a good script language";

//在此我想將字母a替換成字母a

alert(strm.replace("a","a"));

//結果,它只替換了首字母。但如果加上正則表達式結果就不一樣了!replace()支持正則表達式,它可以按照正則表達式的規則匹配字符或字符串,然后給予替換!

var strm = "javascript is a good script language";

//在此我想將字母a替換成字母a

alert(strm.replace(/a/,"a"));

//但是結果還是沒有更改,稍加修改就ok了。

var strm = "javascript is a good script language";

//在此將字母a全部替換成字母a,當正則表達式有"g"標志時,代表將處理整個字符串

alert(strm.replace(/a/g,"a"));

以上介紹了js replace函數的用法,一些js replace的使用實例,希望對大家有所幫助。

總結

以上是生活随笔為你收集整理的html5 replace,js replace函数用法详解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。