在截取字串時常常會用到substr()、substring()、slice()方法,有時混淆之間的用法,故總結下。
閱讀目錄
•slice()
•substring()
•substr()
•總結
slice()
定義:接受一個或兩個參數,第一個參數指定子字串的起始位置。第二個參數表示子字串的結束位置(不包括結束位置的該字元),如果沒有傳遞第二個參數,則將字串的長度作為結束位置。
1、傳遞參數為正值情況:
var str ="helloWorld"; // 一个参数,则将字符串长度作为结束位置 alert(str.slice(3)); // "loWorld" // 两个参数,7位置上的字符为"r",但不包括结束位置的字符 alert(str.slice(3,7)); // "loWo"
2、傳遞參數為負值的情況:
slice()方法会将传入的负值与字符串长度相加。 var str ="helloWorld"; // 一个参数,与字符串长度相加即为slice(7) alert(str.slice(-3)); // "rld" // 两个参数,与字符串长度相加即为slice(3,6) alert(str.slice(3,-4)); // "loW"
3、第二個參數比第一個參數值小的情況:
slice()方法傳入的第二個參數比第一個參數小的話,則傳回空字串。
var str ="helloWorld"; alert(str.slice(5,3)); // ""
4、IE相容性
在IE8瀏覽器測試下,沒啥問題,行為與現代瀏覽器一致。
substring()
定義:接受一個或兩個參數,第一個參數指定子字串的起始位置。第二個參數表示子字串的結束位置(不包括結束位置的該字元),如果沒有傳遞第二個參數,則將字串的長度作為結束位置。
1、傳遞參數為正值情況:與slice()方法行為相同的
var str ="helloWorld"; // 一个参数,则将字符串长度作为结束位置 alert(str.substring(3)); // "loWorld" // 两个参数,7位置上的字符为"r",但不包括结束位置的字符 alert(str.substring(3,7)); // "loWo"
2、傳遞參數為負值的情況:
substring()方法會把所有負值參數轉換為0。來看下範例:
var str ="helloWorld"; // 两个参数,-4会转换为0,相当于substring(3,0) -->即为 substring(0,3) alert(str.substring(3,-4)); // "hel"
substring()方法會將較小的數作為開始位置,將較大的數作為結束位置。如同上面的例子substring(3,0) 與substring(0,3)是一樣效果的。
4、IE相容性
在IE8瀏覽器測試下,沒啥問題,行為與現代瀏覽器一致。
substr()
定義:接受一個或兩個參數,第一個參數指定子字串的起始位置。第二個參數跟之前的方法有些差別,表示傳回的字元個數。如果沒有傳遞第二個參數,則將字串的長度作為結束位置。來看範例:
1、傳遞參數為正值情況:
var str ="helloWorld"; // 一个参数,则将字符串长度作为结束位置 alert(str.substr(3)); // "loWorld" // 两个参数,从位置3开始截取后面7个字符 alert(str.substr(3,7)); // "loWorld"
2、傳遞參數為負值的情況:
substr()方法會將負的第一個參數加上字串的長度,而將負的第二個參數轉換為0。
var str ="helloWorld"; // 将第一个负的参数加上字符串的长度---> //即为:substr(7,5) ,从位置7开始向后截取5个字符 alert(str.substr(-3,5)); // "rld" // 将第二个参数转换为0 // 即为:substr(3,0),即从位置3截取0个字符串,则返回空 alert(str.substr(3,-2)); // ""
3、IE相容性
substr()方法傳遞負值的情況下會存在問題,會傳回原始的字串。 IE9修復了此問題。
總結
在傳遞正值參數情況下,slice() 和 substring () 行為是一致的,substr()方法在第二個參數上會容易混淆
在傳遞負值參數情況下,slice() 方法是透過字串長度相加,符合一般思維,substring()第二個參數轉換為0會容易出問題,起始位置會容易變更,substr () 方法負值情況下會出現IE相容性問題。
綜上,小弟一般建議使用slice()方法。
下面要跟大家介紹slice,substr和substring的差別
首先,他們都接收兩個參數,slice和substring接收的是起始位置和結束位置(不包括結束位置),而substr接收的則是起始位置和所要返回的字串長度。直接看下面範例:
var test = 'hello world'; alert(test.slice(,)); //o w alert(test.substring(,)); //o w alert(test.substr(,)); //o world
這裡有個需要注意的地方就是:substring是以兩個參數中較小一個作為起始位置,較大的參數作為結束位置。
如:
alert(test.substring(7,4)); //o w
接著,當接收的參數是負數時,slice會將它字串的長度與對應的負數相加,結果作為參數;substr則僅僅是將第一個參數與字串長度相加後的結果作為第一個參數;substring則乾脆將負參數都直接轉換為0。測試程式碼如下:
var test = 'hello world'; alert(test.slice(-)); //rld alert(test.substring(-)); //hello world alert(test.substr(-)); //rld alert(test.slice(,-)); //lo w alert(test.substring(,-)); //hel alert(test.substr(,-)); //空字符串
注意:IE對substr接收負值的處理有錯,它會傳回原始字串。

Python和JavaScript的主要區別在於類型系統和應用場景。 1.Python使用動態類型,適合科學計算和數據分析。 2.JavaScript採用弱類型,廣泛用於前端和全棧開發。兩者在異步編程和性能優化上各有優勢,選擇時應根據項目需求決定。

選擇Python還是JavaScript取決於項目類型:1)數據科學和自動化任務選擇Python;2)前端和全棧開發選擇JavaScript。 Python因其在數據處理和自動化方面的強大庫而備受青睞,而JavaScript則因其在網頁交互和全棧開發中的優勢而不可或缺。

Python和JavaScript各有優勢,選擇取決於項目需求和個人偏好。 1.Python易學,語法簡潔,適用於數據科學和後端開發,但執行速度較慢。 2.JavaScript在前端開發中無處不在,異步編程能力強,Node.js使其適用於全棧開發,但語法可能複雜且易出錯。

javascriptisnotbuiltoncorc; sanInterpretedlanguagethatrunsonenginesoftenwritteninc.1)JavascriptwasdesignedAsignedAsalightWeight,drackendedlanguageforwebbrowsers.2)Enginesevolvedfromsimpleterterpretpretpretpretpreterterpretpretpretpretpretpretpretpretpretcompilerers,典型地,替代品。

JavaScript可用於前端和後端開發。前端通過DOM操作增強用戶體驗,後端通過Node.js處理服務器任務。 1.前端示例:改變網頁文本內容。 2.後端示例:創建Node.js服務器。

選擇Python還是JavaScript應基於職業發展、學習曲線和生態系統:1)職業發展:Python適合數據科學和後端開發,JavaScript適合前端和全棧開發。 2)學習曲線:Python語法簡潔,適合初學者;JavaScript語法靈活。 3)生態系統:Python有豐富的科學計算庫,JavaScript有強大的前端框架。

JavaScript框架的強大之處在於簡化開發、提升用戶體驗和應用性能。選擇框架時應考慮:1.項目規模和復雜度,2.團隊經驗,3.生態系統和社區支持。

引言我知道你可能會覺得奇怪,JavaScript、C 和瀏覽器之間到底有什麼關係?它們之間看似毫無關聯,但實際上,它們在現代網絡開發中扮演著非常重要的角色。今天我們就來深入探討一下這三者之間的緊密聯繫。通過這篇文章,你將了解到JavaScript如何在瀏覽器中運行,C 在瀏覽器引擎中的作用,以及它們如何共同推動網頁的渲染和交互。 JavaScript與瀏覽器的關係我們都知道,JavaScript是前端開發的核心語言,它直接在瀏覽器中運行,讓網頁變得生動有趣。你是否曾經想過,為什麼JavaScr


熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

WebStorm Mac版
好用的JavaScript開發工具

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

Dreamweaver CS6
視覺化網頁開發工具