最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JavaScript原生對(duì)象之String對(duì)象的屬性和方法詳解

 更新時(shí)間:2015年03月13日 11:35:10   投稿:junjie  
這篇文章主要介紹了JavaScript原生對(duì)象之String對(duì)象的屬性和方法詳解,本文講解了length、charAt()、charCodeAt()、concat()、indexOf()、lastIndexOf()等方法屬性,需要的朋友可以參考下

length

length 屬性可返回字符串中的字符數(shù)目。

length 是根據(jù)字符串的UTF-16編碼來(lái)獲取長(zhǎng)度的,空字符串長(zhǎng)度為0。length 不可修改。

charAt()

charAt() 方法可返回指定位置的字符。注意,JavaScript 并沒(méi)有一種有別于字符串類型的字符數(shù)據(jù)類型,所以返回的字符是長(zhǎng)度為 1 的字符串。

stringObject.charAt(index)

參數(shù)index是必需的。表示字符串中某個(gè)位置的數(shù)字,即字符在字符串中的下標(biāo)。字符串中第一個(gè)字符的下標(biāo)是 0。如果參數(shù) index 不在 0 與 string.length 之間,該方法將返回一個(gè)空字符串。

注意:charAt() 方法對(duì)于一些非 BMP(Basic-Multilingual-Plane) 字符支持會(huì)有問(wèn)題,參考:MDN

charCodeAt()

charCodeAt() 方法可返回指定位置的字符的 Unicode 編碼。這個(gè)返回值是 0 – 65535 之間的整數(shù)。
方法 charCodeAt() 與 charAt() 方法執(zhí)行的操作相似,只不過(guò)前者返回的是位于指定位置的字符的編碼,而后者返回的是字符子串。

stringObject.charCodeAt(index)

參數(shù)index是可選的。表示字符串中某個(gè)位置的數(shù)字,即字符在字符串中的下標(biāo)。字符串中第一個(gè)字符的下標(biāo)是 0。如果 index 是負(fù)數(shù),或大于等于字符串的長(zhǎng)度,則 charCodeAt() 返回 NaN。index為空時(shí)默認(rèn)為0。

Unicode 編碼的范圍是 0 到 1,114,111。前128個(gè)Unicode 編碼和ASCII字符編碼匹配。charCodeAt() 方法返回的值總是小于65536,因?yàn)楦咧档淖址麜?huì)成對(duì)出現(xiàn),需要用charCodeAt(i)和charCodeAt(i+1)同時(shí)檢索。

concat() –不推薦使用

concat() 方法用于連接兩個(gè)或多個(gè)字符串。

stringObject.concat(stringX, stringX, …, stringX)

參數(shù)stringX是必需的。是將被連接為一個(gè)字符串的一個(gè)或多個(gè)字符串對(duì)象。

concat() 方法將把它的所有參數(shù)轉(zhuǎn)換成字符串,然后按順序連接到字符串 stringObject 的尾部,并返回連接后的字符串。請(qǐng)注意,stringObject 本身并沒(méi)有被更改。

注意,強(qiáng)烈建議使用 ” + ” 運(yùn)算符來(lái)進(jìn)行字符串的連接,來(lái)替代這個(gè)方法,效率也更高,參考:concat vs + vs join。
indexOf()

indexOf() 方法可返回某個(gè)指定的字符串值在字符串中首次出現(xiàn)的位置。

stringObject.indexOf(searchvalue, fromindex)

參數(shù)searchvalue是必需的,規(guī)定需檢索的字符串值。參數(shù)fromindex是可選的整數(shù)參數(shù)。規(guī)定在字符串中開(kāi)始檢索的位置。它的合法取值是 0 到 stringObject.length – 1。如省略該參數(shù),則將從字符串的首字符開(kāi)始檢索。

該方法將從頭到尾地檢索字符串 stringObject,看它是否含有子串 searchvalue。開(kāi)始檢索的位置在字符串的 fromindex 處或字符串的開(kāi)頭(沒(méi)有指定 fromindex 時(shí))。如果找到一個(gè) searchvalue,則返回 searchvalue 的第一次出現(xiàn)的位置。stringObject 中的字符位置是從 0 開(kāi)始的。

注意:indexOf() 方法對(duì)大小寫敏感!如果要檢索的字符串值沒(méi)有出現(xiàn),則該方法返回 -1。

lastIndexOf()

lastIndexOf() 方法可返回一個(gè)指定的字符串值最后出現(xiàn)的位置,在一個(gè)字符串中的指定位置從后向前搜索。

lastIndexOf() 和 indexOf() 參數(shù)和使用方法一致,只不過(guò)是從后向前搜索。

復(fù)制代碼 代碼如下:

var str="Hello world world!"

console.log(str.indexOf("wo"));        //6
console.log(str.indexOf("wo",2));      //6
console.log(str.indexOf("wo",10));     //12
console.log(str.lastIndexOf("wo"));    //12
console.log(str.lastIndexOf("wo",2));  //-1
console.log(str.lastIndexOf("wo",10)); //6

localeCompare()

用本地特定的順序來(lái)比較兩個(gè)字符串。

stringObject.localeCompare(target)

參數(shù)target是必需的,要以本地特定的順序與 stringObject 進(jìn)行比較的字符串。

返回比較結(jié)果的數(shù)字。如果 stringObject 小于 target,則 localeCompare() 返回小于 0 的數(shù)。如果 stringObject 大于 target,則該方法返回大于 0 的數(shù)。如果兩個(gè)字符串相等,或根據(jù)本地排序規(guī)則沒(méi)有區(qū)別,該方法返回 0。

把 < 和 > 運(yùn)算符應(yīng)用到字符串時(shí),它們只用字符的 Unicode 編碼比較字符串,而不考慮當(dāng)?shù)氐呐判蛞?guī)則。以這種方法生成的順序不一定是正確的。例如,在西班牙語(yǔ)中,其中字符 “ch” 通常作為出現(xiàn)在字母 “c” 和 “d” 之間的字符來(lái)排序。localeCompare() 方法提供的比較字符串的方法,考慮了默認(rèn)的本地排序規(guī)則。

localeCompare()在某些高級(jí)瀏覽器中的參數(shù)還支持locales 和 options,參考下面的代碼和 MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/localeCompare

復(fù)制代碼 代碼如下:

//不同文化的排序規(guī)則不同
console.log('ä'.localeCompare('z', 'de'));  //-1
console.log('ä'.localeCompare('z', 'sv'));  //1

match()

match() 方法可在字符串內(nèi)檢索指定的值,或找到一個(gè)或多個(gè)正則表達(dá)式的匹配。

該方法類似 indexOf() 和 lastIndexOf(),但是它返回指定的值,而不是字符串的位置。

stringObject.match(regexp)

參數(shù)regexp可以是字符串,也可以是正則表達(dá)式 RegExp 對(duì)象。

返回存放匹配結(jié)果的數(shù)組。該數(shù)組的內(nèi)容依賴于 regexp 是否具有全局標(biāo)志 g。

如果 regexp 沒(méi)有標(biāo)志 g,那么 match() 方法就只能在 stringObject 中執(zhí)行一次匹配。如果沒(méi)有找到任何匹配的文本, match() 將返回 null。否則,它將返回一個(gè)數(shù)組,其中存放了與它找到的匹配文本有關(guān)的信息。該數(shù)組的第 0 個(gè)元素存放的是匹配文本,而其余的元素存放的是與正則表達(dá)式的子表達(dá)式匹配的文本。除了這些常規(guī)的數(shù)組元素之外,返回的數(shù)組還含有兩個(gè)對(duì)象屬性。index 屬性聲明的是匹配文本的起始字符在 stringObject 中的位置,input 屬性聲明的是對(duì) stringObject 的引用。

如果 regexp 具有標(biāo)志 g,則 match() 方法將執(zhí)行全局檢索,找到 stringObject 中的所有匹配子字符串。若沒(méi)有找到任何匹配的子串,則返回 null。如果找到了一個(gè)或多個(gè)匹配子串,則返回一個(gè)數(shù)組。不過(guò)全局匹配返回的數(shù)組的內(nèi)容與前者大不相同,它的數(shù)組元素中存放的是 stringObject 中所有的匹配子串,而且也沒(méi)有 index 屬性或 input 屬性。

沒(méi)有標(biāo)志g,調(diào)用 stringObject.match(regexp) 和調(diào)用 regexp.exec(stringObject) 的結(jié)果相同。在全局檢索模式下,match() 即不提供與子表達(dá)式匹配的文本的信息,也不聲明每個(gè)匹配子串的位置。如果需要這些全局檢索的信息,可以使用 RegExp.exec()。

注意:如果需要知道一個(gè)字符串是否匹配一個(gè)正則表達(dá)式,使用 regexp.test(string);如果只想一次匹配,使用 regexp.exec(string) 代替 string.match(regexp)。

復(fù)制代碼 代碼如下:

var str="Hello world!"
var str2="1 plus 2 equal 3"

console.log(str.match("world"));  //["world", index: 6, input: "Hello world!"]
console.log(str2.match(/\d+/g));  //["1", "2", "3"]

replace()

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

stringObject.replace(regexp/substr, replacement)

參數(shù)regexp/substr是必需的。規(guī)定子字符串或要替換的模式的 RegExp 對(duì)象。如果該值是一個(gè)字符串,則將它作為要檢索的直接量文本模式,而不是首先被轉(zhuǎn)換為 RegExp 對(duì)象。參數(shù)replacement是必需的。是一個(gè)字符串值。規(guī)定了替換文本或生成替換文本的函數(shù)。

方法會(huì)返回一個(gè)新的字符串,是用 replacement 替換了 regexp 的第一次匹配或所有匹配之后得到的。

字符串 stringObject 的 replace() 方法執(zhí)行的是查找并替換的操作。它將在 stringObject 中查找與 regexp 相匹配的子字符串,然后用 replacement 來(lái)替換這些子串。如果 regexp 具有全局標(biāo)志 g,那么 replace() 方法將替換所有匹配的子串。否則,它只替換第一個(gè)匹配子串。

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

1.$$ – $
2.$` - 位于匹配子串左側(cè)的文本。
3.$' - 位于匹配子串右側(cè)的文本。
4.$& - 與 regexp 相匹配的子串。
5.$number - 與 regexp 中的第 number個(gè)子表達(dá)式相匹配的文本。

replacement 可以是函數(shù),在這種情況下,每個(gè)匹配都調(diào)用該函數(shù),它返回的字符串將作為替換文本使用。該函數(shù)的第一個(gè)參數(shù)是匹配模式的字符串。接下來(lái)的參數(shù)是與模式中的子表達(dá)式匹配的字符串,可以有 0 個(gè)或多個(gè)這樣的參數(shù)。接下來(lái)的參數(shù)是一個(gè)整數(shù),聲明了匹配在 stringObject 中出現(xiàn)的位置。最后一個(gè)參數(shù)是 stringObject 本身。

復(fù)制代碼 代碼如下:

//替換一次
var str = "Hello Microsoft!";
console.log(str.replace(/Microsoft/, "Google"));  //Hello Google!
console.log(str);  //Hello Microsoft!

//替換多次
var str2 = "Hello Microsoft! and Microsoft! and Microsoft! or Microsoft!";
console.log(str2.replace(/Microsoft/g, "Google"));  //Hello Google! and Google! and Google! or Google!

//字符轉(zhuǎn)換
var str3 = "Doe, John";
console.log(str3.replace(/(\w+)\s*, \s*(\w+)/, "$2 $1"));  //John Doe

var str4 = '"a", "b"';
console.log(str4.replace(/"([^"]*)"/g, "'$1'"));  //'a', 'b'

//使用函數(shù)
var str5 = 'aaa bbb ccc';
console.log(str5.replace(/\b\w+\b/g, function(word){
  return word.substring(0,1).toUpperCase()+word.substring(1);}
));   //Aaa Bbb Ccc

search()

search() 方法用于檢索字符串中指定的子字符串,或檢索與正則表達(dá)式相匹配的子字符串。

stringObject.search(regexp)

參數(shù)regexp可以是需要在 stringObject 中檢索的子串,也可以是需要檢索的 RegExp 對(duì)象。

返回stringObject 中第一個(gè)與 regexp 相匹配的子串的起始位置。如果沒(méi)有找到任何匹配的子串,則返回 -1。

注意:search() 方法不執(zhí)行全局匹配,它將忽略標(biāo)志 g。它同時(shí)忽略 regexp 的 lastIndex 屬性,并且總是從字符串的開(kāi)始進(jìn)行檢索,這意味著它總是返回 stringObject 的第一個(gè)匹配的位置。

復(fù)制代碼 代碼如下:

var str = "Hello Microsoft!";
console.log(str.search(/Microsoft/));   //6

如果只是想知道是否有匹配的字符串,使用search()和使用test()方法差不多。如果想得到更多的信息,可以使用match()和exec()方法,但是效率會(huì)低。

slice()

slice() 方法可提取字符串的某個(gè)部分,并以新的字符串返回被提取的部分。

stringObject.slice(start, end)

參數(shù)start是要抽取的片斷的起始下標(biāo)。如果是負(fù)數(shù),則該參數(shù)規(guī)定的是從字符串的尾部開(kāi)始算起的位置。也就是說(shuō),-1 指字符串的最后一個(gè)字符,-2 指倒數(shù)第二個(gè)字符,以此類推。

參數(shù)end是緊接著要抽取的片段的結(jié)尾的下標(biāo)。若未指定此參數(shù),則要提取的子串包括 start 到原字符串結(jié)尾的字符串。如果該參數(shù)是負(fù)數(shù),那么它規(guī)定的是從字符串的尾部開(kāi)始算起的位置。

方法會(huì)返回一個(gè)新的字符串。包括字符串 stringObject 從 start 開(kāi)始(包括 start)到 end 結(jié)束(不包括 end)為止的所有字符。

注意:String 對(duì)象的方法 slice()、substring() 和 substr() 都可返回字符串的指定部分。強(qiáng)烈建議在所有場(chǎng)合都使用 slice() 方法。

復(fù)制代碼 代碼如下:

var str = "Hello Microsoft!";
console.log(str.slice(6));      //Microsoft!
console.log(str.slice(6, 12));  //Micros

substring()

不推薦使用,建議使用slice()替代。

substr()

不推薦使用,建議使用slice()替代。

toLocaleLowerCase()

不推薦使用,只在土耳其語(yǔ)等少數(shù)語(yǔ)種中有用,建議使用toLowerCase()替代。

toLocaleUpperCase()

不推薦使用,只在土耳其語(yǔ)等少數(shù)語(yǔ)種中有用,建議使用toUpperCase()替代。

toLowerCase()

toLowerCase() 方法用于把字符串轉(zhuǎn)換為小寫。

toUpperCase()

toUpperCase() 方法用于把字符串轉(zhuǎn)換為大寫。

 

String對(duì)象還有很多用于HTML 標(biāo)簽的方法:anchor()、big()、blink()、bold()、fixed()、fontcolor()、fontsize()、italics()、link()、small()、strike()、sub()、sup()。他們主要是對(duì)String對(duì)象進(jìn)行HTML格式化處理,現(xiàn)在已經(jīng)很少有人會(huì)應(yīng)用到了,不推薦使用。

方法演示實(shí)例:

復(fù)制代碼 代碼如下:

<html>
<body>

<script type="text/javascript">

var txt="Hello World!"

document.write("<p>Big: " + txt.big() + "</p>")
document.write("<p>Small: " + txt.small() + "</p>")

document.write("<p>Bold: " + txt.bold() + "</p>")
document.write("<p>Italic: " + txt.italics() + "</p>")

document.write("<p>Blink: " + txt.blink() + " (does not work in IE)</p>")
document.write("<p>Fixed: " + txt.fixed() + "</p>")
document.write("<p>Strike: " + txt.strike() + "</p>")

document.write("<p>Fontcolor: " + txt.fontcolor("Red") + "</p>")
document.write("<p>Fontsize: " + txt.fontsize(16) + "</p>")

document.write("<p>Lowercase: " + txt.toLowerCase() + "</p>")
document.write("<p>Uppercase: " + txt.toUpperCase() + "</p>")

document.write("<p>Subscript: " + txt.sub() + "</p>")
document.write("<p>Superscript: " + txt.sup() + "</p>")

document.write("<p>Link: " + txt.link(" </script>

</body>
</html>

相關(guān)文章

  • JavaScript模擬重力狀態(tài)下拋物運(yùn)動(dòng)的方法

    JavaScript模擬重力狀態(tài)下拋物運(yùn)動(dòng)的方法

    這篇文章主要介紹了JavaScript模擬重力狀態(tài)下拋物運(yùn)動(dòng)的方法,實(shí)例分析了javascript操作dom元素模擬運(yùn)動(dòng)的方法,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-03-03
  • javascript實(shí)現(xiàn)別踩白塊兒小游戲程序

    javascript實(shí)現(xiàn)別踩白塊兒小游戲程序

    我們先看到的未開(kāi)始的頁(yè)面黑色和白色方塊是隨機(jī)生成的,完了這么多把沒(méi)有發(fā)現(xiàn)時(shí)固定不變的。點(diǎn)擊一次方塊,程序需要判斷是黑色還是白色的。如果是黑色的,當(dāng)然程序也是實(shí)現(xiàn)了一次自減,在動(dòng)畫(huà)中是實(shí)現(xiàn)一次下移的,下移的時(shí)候點(diǎn)擊的方塊到黃顏色的區(qū)域會(huì)變成灰色
    2015-11-11
  • js字符串引用的兩種方式(必看)

    js字符串引用的兩種方式(必看)

    下面小編就為大家?guī)?lái)一篇js字符串傳引用的兩種方式(必看)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-09-09
  • js阻止移動(dòng)端頁(yè)面滾動(dòng)的兩種方法

    js阻止移動(dòng)端頁(yè)面滾動(dòng)的兩種方法

    本文主要介紹了js阻止移動(dòng)端頁(yè)面滾動(dòng)的兩種方法。具有很好的參考價(jià)值,下面跟著小編一起來(lái)看下吧
    2017-01-01
  • JavaScript驗(yàn)證一個(gè)url的方法總結(jié)

    JavaScript驗(yàn)證一個(gè)url的方法總結(jié)

    最近遇到幾次需要校驗(yàn)URL的,使用這篇文章小編就為大家整理了一下幾個(gè)JavaScript校驗(yàn)URL的方法,文中的示例代碼簡(jiǎn)潔易懂,感興趣的小伙伴可以了解一下
    2023-12-12
  • JS事件在IE與FF中的區(qū)別詳細(xì)解析

    JS事件在IE與FF中的區(qū)別詳細(xì)解析

    這篇文章主要是對(duì)JS事件在IE與FF中的區(qū)別進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助
    2013-11-11
  • gulp-uglify 與gulp.watch()配合使用時(shí)報(bào)錯(cuò)(重復(fù)壓縮問(wèn)題)

    gulp-uglify 與gulp.watch()配合使用時(shí)報(bào)錯(cuò)(重復(fù)壓縮問(wèn)題)

    gulp是基于Nodejs的自動(dòng)任務(wù)運(yùn)行器,gulp 和 grunt 非常類似,但相比于 grunt 的頻繁 IO 操作,gulp 的流操作,能更快地更便捷地完成構(gòu)建工作。今天在學(xué)習(xí)gulp時(shí)遇到當(dāng)用gulp.watch來(lái)監(jiān)聽(tīng)js文件的變動(dòng)時(shí)出現(xiàn)重復(fù)壓縮問(wèn)題,下面小編給大家解答下
    2016-08-08
  • 微信內(nèi)置瀏覽器私有接口WeixinJSBridge介紹

    微信內(nèi)置瀏覽器私有接口WeixinJSBridge介紹

    這篇文章主要介紹了微信內(nèi)置瀏覽器私有接口WeixinJSBridge介紹,本文講解了發(fā)送給好友、分享函數(shù)、隱藏工具欄、隱藏三個(gè)點(diǎn)按鈕等功能,需要的朋友可以參考下
    2015-05-05
  • JS中幾種實(shí)用的跨域方法原理詳解

    JS中幾種實(shí)用的跨域方法原理詳解

    js跨域是指通過(guò)js在不同的域之間進(jìn)行數(shù)據(jù)傳輸或通信,只要協(xié)議、域名、端口有任何一個(gè)不同,都被當(dāng)作是不同的域,在這篇文章中講給大家介紹一下js中幾種實(shí)用的跨域方法原理,需要的朋友可以參考下
    2023-06-06
  • trackingjs+websocket+百度人臉識(shí)別API實(shí)現(xiàn)人臉簽到

    trackingjs+websocket+百度人臉識(shí)別API實(shí)現(xiàn)人臉簽到

    這篇文章主要介為大家詳細(xì)紹了trackingjs+websocket+百度人臉識(shí)別API實(shí)現(xiàn)人臉簽到功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-11-11

最新評(píng)論

永丰县| 东辽县| 崇阳县| 三穗县| 多伦县| 南平市| 忻州市| 吐鲁番市| 莱阳市| 增城市| 潞城市| 明光市| 启东市| 朝阳县| 区。| 富源县| 合肥市| 扶风县| 黑龙江省| 右玉县| 蒙城县| 兴安县| 潜山县| 鄂托克前旗| 连平县| 洛南县| 中超| 扎鲁特旗| 宜兴市| 阿鲁科尔沁旗| 额敏县| 施秉县| 绿春县| 板桥市| 林周县| 潢川县| 赞皇县| 施秉县| 彩票| 饶平县| 北票市|