首頁 web前端 js教程 JavaScript原生物件之String物件的屬性與方法詳解_javascript技巧

JavaScript原生物件之String物件的屬性與方法詳解_javascript技巧

May 16, 2016 pm 04:09 PM
javascript 屬性 方法

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 加 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(/bw 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() メソッドは、文字列の特定の部分を抽出し、抽出された部分を新しい文字列として返します。

stringObject.slice(開始, 終了)

パラメータ start は、抽出されるセグメントの開始インデックスです。負の数値の場合、このパラメータは文字列の末尾から開始する位置を指定します。つまり、-1 は文字列の最後の文字を指し、-2 は最後から 2 番目の文字を指し、以下同様になります。

パラメータ end は、抽出するフラグメントの末尾の直後のインデックスです。このパラメータが指定されていない場合、抽出される部分文字列には、元の文字列の先頭から末尾までの文字列が含まれます。このパラメータが負の場合、文字列の末尾からの位置を指定します。

メソッドは新しい文字列を返します。文字列 stringObject の先頭 (両端を含む) から末尾 (両端を含む) までのすべての文字が含まれます。

注: String オブジェクトのメソッド slide()、substring()、および substr() はすべて、文字列の指定された部分を返すことができます。あらゆる状況において、slice() メソッドを使用することを強くお勧めします。

コードをコピーします コードは次のとおりです:

var str = "こんにちはマイクロソフト!";
console.log(str.slice(6)); //Microsoft!
console.log(str.slice(6, 12)); //マイクロ

部分文字列()

非推奨です。代わりに、slice() を使用することをお勧めします。

substr()

非推奨です。代わりに、slice() を使用することをお勧めします。

toLocaleLowerCase()

推奨されません。トルコ語などのいくつかの言語でのみ役立ちます。代わりに toLowerCase() を使用することをお勧めします。

toLocaleUpperCase()

推奨されません。トルコ語などのいくつかの言語でのみ役立ちます。代わりに toUpperCase() を使用することをお勧めします。

toLowerCase()

toLowerCase() メソッドは、文字列を小文字に変換するために使用されます。

toUpperCase()

toUpperCase() メソッドは、文字列を大文字に変換するために使用されます。

String オブジェクトには、HTML タグ用のメソッドも多数あります:anchor()、big()、blink()、bold()、fixed()、fontcolor()、fontsize()、italics()、link()、small ()、ストライク()、サブ()、サップ()。現在では、これらを適用する人はほとんどおらず、使用はお勧めできません。

メソッドのデモンストレーション例:

コードをコピーします コードは次のとおりです:


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

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
4 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

怎麼刪除微信好友?刪除微信好友的方法 怎麼刪除微信好友?刪除微信好友的方法 Mar 04, 2024 am 11:10 AM

微信是主流的聊天工具之一,我們可以透過微信認識新的朋友,聯絡老的朋友,維繫朋友之間的友誼。正如天下沒有不散的宴席,人與人之間的相處難免會發生意見不合的時候。當一個人極度影響你的情緒,或是在相處的時候發現三觀不合,沒辦法再繼續溝通,那麼我們可能需要刪除微信好友的方法。怎麼刪除微信好友?刪除微信好友的方法第一步:在微信主介面輕觸【通訊錄】;第二步:點選對應要刪除的好友,進入【詳細資料】;第三步:點選右上角【...】;第四步:點選下方【刪除】即可;第五步:了解後頁面提示後,點選【刪除聯絡人】即可;溫馨

怎麼在番茄免費小說app中寫小說 分享番茄小說寫小說方法教程 怎麼在番茄免費小說app中寫小說 分享番茄小說寫小說方法教程 Mar 28, 2024 pm 12:50 PM

番茄小說是一款非常熱門的小說閱讀軟體,我們在番茄小說中經常會有新的小說和漫畫可以去閱讀,每一本小說和漫畫都很有意思,很多小伙伴也想著要去寫小說來賺取賺取零用錢,在把自己想要寫的小說內容編輯成文字,那麼我們要怎麼樣在這裡面去寫小說呢?小伙伴們都不知道,那就讓我們一起到本站本站中花點時間來看寫小說的方法介紹。分享番茄小說寫小說方法教學  1、先在手機上打開番茄免費小說app,點擊個人中心——作家中心  2、跳到番茄作家助手頁面——點擊創建新書在小說的結

七彩虹主機板怎麼進入bios?教你兩種方法 七彩虹主機板怎麼進入bios?教你兩種方法 Mar 13, 2024 pm 06:01 PM

  七彩虹主機板在中國國內市場享有較高的知名度和市場佔有率,但是有些七彩虹主機板的用戶還不清楚怎麼進入bios進行設定呢?針對這一情況,小編專門為大家帶來了兩種進入七彩虹主機板bios的方法,快來試試吧!方法一:使用u盤啟動快捷鍵直接進入u盤裝系統七彩虹主機板一鍵啟動u盤的快捷鍵是ESC或F11,首先使用黑鯊裝機大師製作一個黑鯊U盤啟動盤,然後開啟電腦,當看到開機畫面的時候,連續按下鍵盤上的ESC或F11鍵以後將會進入到一個啟動項順序選擇的窗口,將遊標移到顯示“USB”的地方,然

微信刪除的人如何找回(簡單教學告訴你如何恢復被刪除的聯絡人) 微信刪除的人如何找回(簡單教學告訴你如何恢復被刪除的聯絡人) May 01, 2024 pm 12:01 PM

而後悔莫及、人們常常會因為一些原因不小心刪除某些聯絡人、微信作為一款廣泛使用的社群軟體。幫助用戶解決這個問題,本文將介紹如何透過簡單的方法找回被刪除的聯絡人。 1.了解微信聯絡人刪除機制這為我們找回被刪除的聯絡人提供了可能性、微信中的聯絡人刪除機制是將其從通訊錄中移除,但並未完全刪除。 2.使用微信內建「通訊錄恢復」功能微信提供了「通訊錄恢復」節省時間和精力,使用者可以透過此功能快速找回先前刪除的聯絡人,功能。 3.進入微信設定頁面點選右下角,開啟微信應用程式「我」再點選右上角設定圖示、進入設定頁面,,

Win11管理員權限取得方法總計 Win11管理員權限取得方法總計 Mar 09, 2024 am 08:45 AM

Win11管理員權限取得方法匯總在Windows11作業系統中,管理員權限是非常重要的權限之一,可以讓使用者對系統進行各種操作。有時候,我們可能需要取得管理員權限來完成一些操作,例如安裝軟體、修改系統設定等。下面就為大家總結了一些取得Win11管理員權限的方法,希望能幫助大家。 1.使用快捷鍵在Windows11系統中,可以透過快捷鍵的方式快速開啟命令提

手機版龍蛋孵化方法大揭密(一步一步教你如何成功孵化手機版龍蛋) 手機版龍蛋孵化方法大揭密(一步一步教你如何成功孵化手機版龍蛋) May 04, 2024 pm 06:01 PM

手機遊戲成為了人們生活中不可或缺的一部分,隨著科技的發展。它以其可愛的龍蛋形象和有趣的孵化過程吸引了眾多玩家的關注,而其中一款備受矚目的遊戲就是手機版龍蛋。幫助玩家們在遊戲中更好地培養和成長自己的小龍,本文將向大家介紹手機版龍蛋的孵化方法。 1.選擇合適的龍蛋種類玩家需要仔細選擇自己喜歡並且適合自己的龍蛋種類,根據遊戲中提供的不同種類的龍蛋屬性和能力。 2.提升孵化機的等級玩家需要透過完成任務和收集道具來提升孵化機的等級,孵化機的等級決定了孵化速度和孵化成功率。 3.收集孵化所需的資源玩家需要在遊戲中

手機字體大小設定方法(輕鬆調整手機字體大小) 手機字體大小設定方法(輕鬆調整手機字體大小) May 07, 2024 pm 03:34 PM

字體大小的設定成為了重要的個人化需求,隨著手機成為人們日常生活的重要工具。以滿足不同使用者的需求、本文將介紹如何透過簡單的操作,提升手機使用體驗,調整手機字體大小。為什麼需要調整手機字體大小-調整字體大小可以使文字更清晰易讀-適合不同年齡段用戶的閱讀需求-方便視力不佳的用戶使用手機系統自帶字體大小設置功能-如何進入系統設置界面-在在設定介面中找到並進入"顯示"選項-找到"字體大小"選項並進行調整第三方應用調整字體大小-下載並安裝支援字體大小調整的應用程式-開啟應用程式並進入相關設定介面-根據個人

快速掌握:華為手機開啟兩個微信帳號方法大揭密! 快速掌握:華為手機開啟兩個微信帳號方法大揭密! Mar 23, 2024 am 10:42 AM

在現今社會,手機已經成為我們生活中不可或缺的一部分。而微信作為我們日常溝通、工作、生活的重要工具,更是經常被使用。然而,在處理不同事務時可能需要分開兩個微信帳號,這就要求手機能夠支援同時登入兩個微信帳號。華為手機作為國內知名品牌,很多人使用,那麼華為手機開啟兩個微信帳號的方法是怎麼樣的呢?下面就來揭秘一下這個方法。首先,要在華為手機上同時使用兩個微信帳號,最簡

See all articles