搜尋
首頁web前端js教程JavaScript原生物件之String物件的屬性與方法詳解_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 ()、ストライク()、サブ()、サップ()。現在では、これらを適用する人はほとんどおらず、使用はお勧めできません。

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

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


var txt="Hello World!"

document.write("

Big: " txt.big() "

")
document.write("

Small: " txt.small() "

")

document.write("

太字: " txt.bold() "

")
document.write("

イタリック: " txt.italics() "

")

document.write("

Blink: " txt.blink() " (IE では動作しません)

")
document.write("

修正: " txt.fixed() "

")
document.write("

Strike: " txt.strike() "

")

document.write("

Fontcolor: " txt.fontcolor("Red") "

")
document.write("

Fontsize: " txt.fontsize(16) "

")

document.write("

Lowercase: " txt.toLowerCase() "

")
document.write("

Uppercase: " txt.toUpperCase() "

")

document.write("

下付き文字: " txt.sub() "

")
document.write("

上付き文字: " txt.sup() "

")

document.write("

Link: " txt.link("http://www.w3school.com.cn") "

")


陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
JavaScript引擎:比較實施JavaScript引擎:比較實施Apr 13, 2025 am 12:05 AM

不同JavaScript引擎在解析和執行JavaScript代碼時,效果會有所不同,因為每個引擎的實現原理和優化策略各有差異。 1.詞法分析:將源碼轉換為詞法單元。 2.語法分析:生成抽象語法樹。 3.優化和編譯:通過JIT編譯器生成機器碼。 4.執行:運行機器碼。 V8引擎通過即時編譯和隱藏類優化,SpiderMonkey使用類型推斷系統,導致在相同代碼上的性能表現不同。

超越瀏覽器:現實世界中的JavaScript超越瀏覽器:現實世界中的JavaScriptApr 12, 2025 am 12:06 AM

JavaScript在現實世界中的應用包括服務器端編程、移動應用開發和物聯網控制:1.通過Node.js實現服務器端編程,適用於高並發請求處理。 2.通過ReactNative進行移動應用開發,支持跨平台部署。 3.通過Johnny-Five庫用於物聯網設備控制,適用於硬件交互。

使用Next.js(後端集成)構建多租戶SaaS應用程序使用Next.js(後端集成)構建多租戶SaaS應用程序Apr 11, 2025 am 08:23 AM

我使用您的日常技術工具構建了功能性的多租戶SaaS應用程序(一個Edtech應用程序),您可以做同樣的事情。 首先,什麼是多租戶SaaS應用程序? 多租戶SaaS應用程序可讓您從唱歌中為多個客戶提供服務

如何使用Next.js(前端集成)構建多租戶SaaS應用程序如何使用Next.js(前端集成)構建多租戶SaaS應用程序Apr 11, 2025 am 08:22 AM

本文展示了與許可證確保的後端的前端集成,並使用Next.js構建功能性Edtech SaaS應用程序。 前端獲取用戶權限以控制UI的可見性並確保API要求遵守角色庫

JavaScript:探索網絡語言的多功能性JavaScript:探索網絡語言的多功能性Apr 11, 2025 am 12:01 AM

JavaScript是現代Web開發的核心語言,因其多樣性和靈活性而廣泛應用。 1)前端開發:通過DOM操作和現代框架(如React、Vue.js、Angular)構建動態網頁和單頁面應用。 2)服務器端開發:Node.js利用非阻塞I/O模型處理高並發和實時應用。 3)移動和桌面應用開發:通過ReactNative和Electron實現跨平台開發,提高開發效率。

JavaScript的演變:當前的趨勢和未來前景JavaScript的演變:當前的趨勢和未來前景Apr 10, 2025 am 09:33 AM

JavaScript的最新趨勢包括TypeScript的崛起、現代框架和庫的流行以及WebAssembly的應用。未來前景涵蓋更強大的類型系統、服務器端JavaScript的發展、人工智能和機器學習的擴展以及物聯網和邊緣計算的潛力。

神秘的JavaScript:它的作用以及為什麼重要神秘的JavaScript:它的作用以及為什麼重要Apr 09, 2025 am 12:07 AM

JavaScript是現代Web開發的基石,它的主要功能包括事件驅動編程、動態內容生成和異步編程。 1)事件驅動編程允許網頁根據用戶操作動態變化。 2)動態內容生成使得頁面內容可以根據條件調整。 3)異步編程確保用戶界面不被阻塞。 JavaScript廣泛應用於網頁交互、單頁面應用和服務器端開發,極大地提升了用戶體驗和跨平台開發的靈活性。

Python還是JavaScript更好?Python還是JavaScript更好?Apr 06, 2025 am 12:14 AM

Python更适合数据科学和机器学习,JavaScript更适合前端和全栈开发。1.Python以简洁语法和丰富库生态著称,适用于数据分析和Web开发。2.JavaScript是前端开发核心,Node.js支持服务器端编程,适用于全栈开发。

See all articles

熱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尊渡假赌尊渡假赌尊渡假赌

熱工具

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器