亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > JavaScript > 正文

JavaScript原生對象之String對象的屬性和方法詳解

2024-05-06 16:16:45
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了JavaScript原生對象之String對象的屬性和方法詳解,本文講解了length、charAt()、charCodeAt()、concat()、indexOf()、lastIndexOf()等方法屬性,需要的朋友可以參考下
 

length

length 屬性可返回字符串中的字符數目。

length 是根據字符串的UTF-16編碼來獲取長度的,空字符串長度為0。length 不可修改。

charAt()

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

stringObject.charAt(index)

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

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

charCodeAt()

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

stringObject.charCodeAt(index)

參數index是可選的。表示字符串中某個位置的數字,即字符在字符串中的下標。字符串中第一個字符的下標是 0。如果 index 是負數,或大于等于字符串的長度,則 charCodeAt() 返回 NaN。index為空時默認為0。

Unicode 編碼的范圍是 0 到 1,114,111。前128個Unicode 編碼和ASCII字符編碼匹配。charCodeAt() 方法返回的值總是小于65536,因為更高值的字符會成對出現,需要用charCodeAt(i)和charCodeAt(i+1)同時檢索。

concat() –不推薦使用

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

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

參數stringX是必需的。是將被連接為一個字符串的一個或多個字符串對象。

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

注意,強烈建議使用 ” + ” 運算符來進行字符串的連接,來替代這個方法,效率也更高,參考:concat vs + vs join。 
indexOf()

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

stringObject.indexOf(searchvalue, fromindex)

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

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

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

lastIndexOf()

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

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

復制代碼代碼如下:

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()

用本地特定的順序來比較兩個字符串。

stringObject.localeCompare(target)

參數target是必需的,要以本地特定的順序與 stringObject 進行比較的字符串。

返回比較結果的數字。如果 stringObject 小于 target,則 localeCompare() 返回小于 0 的數。如果 stringObject 大于 target,則該方法返回大于 0 的數。如果兩個字符串相等,或根據本地排序規則沒有區別,該方法返回 0。

把 < 和 > 運算符應用到字符串時,它們只用字符的 Unicode 編碼比較字符串,而不考慮當地的排序規則。以這種方法生成的順序不一定是正確的。例如,在西班牙語中,其中字符 “ch” 通常作為出現在字母 “c” 和 “d” 之間的字符來排序。localeCompare() 方法提供的比較字符串的方法,考慮了默認的本地排序規則。

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

 

復制代碼代碼如下:

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

 

match()

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

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

stringObject.match(regexp)

參數regexp可以是字符串,也可以是正則表達式 RegExp 對象。

返回存放匹配結果的數組。該數組的內容依賴于 regexp 是否具有全局標志 g。

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

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

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

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

 

復制代碼代碼如下:

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() 方法用于在字符串中用一些字符替換另一些字符,或替換一個與正則表達式匹配的子串。

stringObject.replace(regexp/substr, replacement)

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

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

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

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

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

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

復制代碼代碼如下:

//替換一次
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!

//字符轉換
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'

//使用函數
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() 方法用于檢索字符串中指定的子字符串,或檢索與正則表達式相匹配的子字符串。

stringObject.search(regexp)

參數regexp可以是需要在 stringObject 中檢索的子串,也可以是需要檢索的 RegExp 對象。

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

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

復制代碼代碼如下:

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

 

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

slice()

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

stringObject.slice(start, end)

參數start是要抽取的片斷的起始下標。如果是負數,則該參數規定的是從字符串的尾部開始算起的位置。也就是說,-1 指字符串的最后一個字符,-2 指倒數第二個字符,以此類推。

參數end是緊接著要抽取的片段的結尾的下標。若未指定此參數,則要提取的子串包括 start 到原字符串結尾的字符串。如果該參數是負數,那么它規定的是從字符串的尾部開始算起的位置。

方法會返回一個新的字符串。包括字符串 stringObject 從 start 開始(包括 start)到 end 結束(不包括 end)為止的所有字符。

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

 

復制代碼代碼如下:

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

 

substring()

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

substr()

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

toLocaleLowerCase()

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

toLocaleUpperCase()

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

toLowerCase()

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

toUpperCase()

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

 

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

方法演示實例:

 

復制代碼代碼如下:

<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("http://www.w3school.com.cn") + "</p>")
</script>

</body>
</html>

 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美成人性色生活仑片| 日韩视频一区在线| 欧美—级高清免费播放| 国产精品久久久久久久电影| 亚洲国产精久久久久久久| 成人激情视频网| 亚洲已满18点击进入在线看片| 成人激情免费在线| www.久久撸.com| 在线视频亚洲欧美| 欧美性在线视频| 日韩欧美极品在线观看| 亚洲高清久久网| 国产精品色视频| 成人av在线亚洲| 亚洲成人激情小说| 日韩免费av片在线观看| 欧美大码xxxx| 国产精品久久9| 青草青草久热精品视频在线网站| 上原亚衣av一区二区三区| 亚洲第一福利网| 久久九九精品99国产精品| 日韩av免费在线看| 国产成人精品午夜| 成人性生交xxxxx网站| 伊人精品在线观看| 最近2019中文字幕大全第二页| 91最新在线免费观看| 奇米影视亚洲狠狠色| 中文字幕国内精品| 伊人久久男人天堂| 国产美女被下药99| 91成人免费观看网站| 亚洲精品动漫100p| 久久精品影视伊人网| 欧美精品久久久久久久| www.亚洲免费视频| 国产日产亚洲精品| 亚洲国产精品久久| 日韩av中文在线| 国产欧美日韩91| 亚洲日本成人女熟在线观看| 91国产高清在线| 久久亚洲私人国产精品va| 久久亚洲国产成人| 国外日韩电影在线观看| 欧美性极品少妇精品网站| 亚洲一区av在线播放| 一区二区欧美亚洲| 亚洲国产精品资源| 国产精品青草久久久久福利99| 亚洲一区二区免费在线| 欧美孕妇孕交黑巨大网站| 国产欧美日韩精品丝袜高跟鞋| 日韩电影大全免费观看2023年上| 亚洲人成网7777777国产| 亚洲第一网站免费视频| 国产精品视频区| 97精品国产97久久久久久春色| 一本色道久久88综合日韩精品| 夜夜嗨av色综合久久久综合网| 欧美日韩国产91| 亚洲r级在线观看| 久久久久久网址| 国产福利精品av综合导导航| 国产成人一区二区| 91精品免费视频| 久久久久久com| 色中色综合影院手机版在线观看| 欧美美女15p| 久久在线免费视频| 91在线免费看网站| 国产999精品视频| 欧美亚洲国产日本| 高清欧美性猛交| 日韩最新中文字幕电影免费看| 精品久久久国产精品999| 亚洲xxxx3d| 久久久久久久激情视频| 韩国国内大量揄拍精品视频| 亚洲精品色婷婷福利天堂| 日韩精品电影网| 午夜精品在线观看| 亚洲美女激情视频| 中文字幕v亚洲ⅴv天堂| 欧美精品在线视频观看| 国产视频精品一区二区三区| 国产精品久久久久久av福利软件| 热久久这里只有精品| 国产精品美女久久| 精品久久久久久中文字幕一区奶水| 久久久久国色av免费观看性色| 美女黄色丝袜一区| 欧美日韩国产一区中文午夜| 日韩有码在线播放| 久久精品国产久精国产思思| 国产综合在线视频| 精品久久香蕉国产线看观看gif| 国产亚洲综合久久| 精品福利樱桃av导航| 欧美在线视频网站| 亚洲精品久久久久国产| 国产一区二区久久精品| 欧美一级淫片videoshd| 亚洲欧美国产精品久久久久久久| 少妇av一区二区三区| 91久久久久久久久久久久久| 亚洲最大av网站| 欧美大片欧美激情性色a∨久久| 亚洲人成毛片在线播放| 97色在线视频| 2019中文字幕免费视频| 欧美激情久久久久久| 亚洲最大福利视频网| 日韩激情在线视频| 色综合久久久久久中文网| 欧美日韩在线一区| 国产一区二区视频在线观看| 日本免费在线精品| 国产精品高潮呻吟久久av无限| 久久99热精品| 欧美国产精品va在线观看| 久久久久久久久久久免费精品| 日本电影亚洲天堂| 久久精品免费电影| 国产成人91久久精品| 一区二区三区四区视频| 亚洲乱码av中文一区二区| 伊人青青综合网站| 国产精品久久久久久久午夜| 91久久久国产精品| 亚洲图片欧美日产| 精品久久久香蕉免费精品视频| 国产精品久久久久久超碰| 欧美性猛交xxxxx水多| 国产精品网红福利| 精品国模在线视频| 视频在线一区二区| 欧美xxxx做受欧美.88| 亚洲欧美中文另类| 成人精品久久一区二区三区| 精品国产91久久久久久| 91亚洲精品一区| 国产一区二区三区在线看| 欧美激情中文字幕乱码免费| 国产亚洲激情视频在线| 性色av香蕉一区二区| 久久久成人av| 红桃av永久久久| 欧美大片在线影院| 91亚洲人电影| 欧美激情2020午夜免费观看| 国产一区二区美女视频| 亚洲天堂第二页| 亚洲综合成人婷婷小说| 日韩一级裸体免费视频| 欧美一级电影免费在线观看| 亚洲丝袜在线视频| 欧美午夜精品久久久久久人妖| 欧美成年人视频| 91久久国产精品| 久久精品国产亚洲精品2020| 国产999精品久久久影片官网|