常常會用到的截取字串substr()、substring()、slice()方法詳解_javascript技巧
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()方法。

熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

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

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

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

在Go語言中,我們常常會遇到一種錯誤,即「panic:runtimeerror:sliceboundsoutofrange」(切片越界)錯誤。這是因為我們在使用切片時,通常會對切片進行存取或操作,可能會出現存取索引越界的情況。這篇文章將介紹這種錯誤的基本原因、如何避免和解決這種錯誤。 1.切片越界錯誤的產生原因切片是一種引用型,由底層

Java如何使用StringBuilder類別的substring()函數截取字串的子字串在Java中,我們經常需要處理字串的運算。而Java的StringBuilder類別提供了一系列的方法,方便我們對字串進行操作。其中,substring()函數可以用來截取字串的子字串。 substring()函數有兩種重載形式,分別是substring(intstar

這篇文章將為大家詳細講解有關PHP返回字符串第一個字符的ASCII值,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章後可以有所收穫。 PHP傳回字串第一個字元的ASCII值引言在php中,取得字串第一個字元的ASCII值是一個常見的操作,涉及到字串處理和字元編碼基礎知識。 ASCII值用於表示字元在電腦系統中的數字值,對於字元比較、資料傳輸和儲存至關重要。過程取得字串第一個字元的ASCII值涉及以下步驟:取得字串:確定要取得ASCII值的字串。它可以是變數、字串常數

這篇文章將為大家詳細講解有關PHP返回一個字符串在另一個字符串中開始位置到結束位置的字符串,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章後可以有所收穫。 PHP中使用substr()函數從字串中擷取子字串substr()函數可從字串中擷取指定範圍內的字元。其語法如下:substr(string,start,length)其中:string:要從中提取子字串的原始字串。 start:子字串開始位置的索引(從0開始)。 length(可選):子字串的長度。如果未指定,則提

如何使用Java中的String.substring()方法取得子字串? Java中的String類別提供了一個非常有用的方法substring(),可以用來取得字串的子字串。它允許我們從一個字串中選擇一部分字符,並將其作為一個新的字串返回。本文將介紹如何使用Java中的substring()方法,並提供一些程式碼範例。使用substring()方法非常

了解PHP中的substr()函數用於截取字串在PHP語言中,substr()函數是一個非常有用的字串處理函數,它可以用來截取指定位置和長度的字串片段。 substr()函數接受三個參數:待截取的字串、截取的起始位置、截取的長度。以下我們將詳細介紹substr()函數的使用方法,並給出具體的程式碼範例。 substr()函數的基本用法substr()函數的

使用PHP函數"substr"取得字串的子字串在PHP程式中,經常會遇到需要取得字串的部分內容的情況。這時,我們可以使用PHP內建的函數"substr"來實現。本文將介紹如何使用"substr"函數來取得字串的子字串,並提供一些程式碼範例。一、substr函數的基本用法substr函數用於從字串中取得指定長度的子字串。其基本語法如下:substr(

PHPmb_substr函數無效的處理方案在開發PHP應用程式時,常會用到mb_substr函數來截取字串。然而,有時候可能會遇到mb_substr函數無效的情況,主要是因為在不同環境中字元編碼的問題。為了解決這個問題,我們需要對mb_substr函數進行有效的處理。常見的處理方案是透過設定適當的字元編碼和截取長度來確保mb_substr函數能
