1. 程式人生 > >JavaScript String類常用方法比較

JavaScript String類常用方法比較

JS對String的子串判斷的方法,比較容易混淆。
1、 charAt()
返回字串中的第n個字元
Method: 
stirng.charAt(n)

n 獲取的字元的位置,取值在0<=n<=string.length-1 字串中第一個字元的下標值是0。如果引數n不在0和 string.length-1之間,該方法將返回一個空字串。注意,JavaScript並沒有一種有異於字串型別的字元資料型別,所以返回的字元 是長度為1的字串。

2、 indexOf()
檢索字串
Method: 
string.indexOf(substring)
string.indexOf(substring, start)

substring
要在字串string中檢索的子串。
start
一個選用的整數引數,聲明瞭在字串string中開始檢索的位置。它的合法聚會是0(字串中的第一個字元的位置)到string.length-1(字串的最後一個字元的位置)。如果省略了這個引數,將從字串的第一個字元開始檢索。

返回值

如果在string中的start位置之後存在substring,返回出現的第一個substring的位置。如果沒有找到子串substring,返回-1。

描述

方法 String.indexOf()將從頭到尾的檢索字串string,看它是否含有子串substring。開始檢索的位置在字串string的 start處或string的開頭(沒有指定start引數時)。如果找到了一個substring,那麼String.indexOf()將返回 substring的第一個字元在string中的位置。string中的字元位置是從0開始的。
如果在string中沒有找到substring,那麼String.indexOf()方法將返回-1。

3、 String.lastIndexOf()

從後向前檢索一個字串
Method:
string.lastIndexOf(substring)
string.lastIndexOf(substring, start)

substring
要在字串string中檢索的子串。
start
一個選用的引數,聲明瞭在字串string中開始檢索的位置。它的合法取值是0(字串中的第一個字元的位置)到string.length-1(字串中的最後一個字元的位置)。如果省略了這個引數,將從字串的最後一個字元處開始檢索。

返回值

如果在string中的start位置之前存在substring,那麼返回的就是出現的最後一個substring的位置。如果沒有找到子串substring,那麼返回的就是-1。

描述

方法 String.lastIndexOf()將從尾到頭的檢索字串string,看它是否含有子串substring。開始檢索的位置在字串 string的start處或string的結尾(沒有指定start引數時)。如果找到了一個substring,那麼 String.lastIndexOf()將返回substring的第一個字元在string中的位置。由於是從尾到頭的檢索一個字串,所以找到的第 一個substring其實是出現在位置start之前的最後一個substring。 如果在string中沒有找到substring,那麼String.lastIndexOf()方法將返回-1。
4、String.substring()
返回字串的一個子串
Method:
string.substring(from, to)

from
一個非負的整數,聲明瞭要抽取的子串的第一個字元在string中的位置。
to
一個可選的非負的整數,比要抽取的子串的最後一個字元在string中的位置多1。如果省略了該引數,返回的子串直到字串的結尾。

返回值

一個新字串,其長度為to-from,存放的是字串string的一個子串。這個新字串含有的字元是從string中的from處到to-1處複製的。

描述

String.substring()將返回字串string的子串,由from到to之間的字元構成,包括位於from的字元,不包括位於to的字元。
如果引數from與to相等,那麼該方法返回的就是一個空串(即長度為0的字串)。如果from比to大,那麼該方法在抽取子串之前會先交換這兩個參 數。要記住,該子串包括from處的字元,不包括to處的字元。雖然這樣看來有違直覺,但這種系統一個值得注意的重要特性是,返回的子串的長度總等於 to-from。

5、 String.substr()
抽取一個子串
Method:
string.substr(start, length)

start
要抽取的子串的起始下標。如果是一個負數,那麼該引數宣告從字串的尾部開始算起的位置。也就是說,-1指定字串中的最後一個字元,-2指倒數第二個字元,以此類推。
length
子串中的字元數。如果省略這個引數,那麼返回從string的開始位置到結尾的子串。

返回值

一個string中的副本,包括從string的start處(包括start所指的字元)開始的length個字元。如果沒有指定length,返回的字串包含從start到string能結尾的字元。

描述

substr()將在string中抽取並返回一個子串。但是它並不修改string。
注意,substr()指定的是子串的開始位置和長度,它是String.substring()和String.splice()的一種有用的替代方法,後兩者指定的都是起始字元的位置。但要注意,ECMAScript沒有標準化該方法,因此反對使用它。

例子

var s = "abcdefg";
s.substr(2,2);   // Returns "cd"
s.substr(3);     // Returns "defg"
s.substr(-3,2);  // Should return "ef"; returns "ab" in IE 4

Bugs

在IE4中,引數start的值無效(這在IE的後來版本中已修正了)。start值指定的不是從字串尾部開始算起的字元位置,而是第0個字元的位置。

6、 String.split()

將字串分割成字串陣列

Method:

string.split(delimiter, limit)

delimiter
字串或正則表示式,從該引數指定的地方分割string。

limit
這個可選的整數指定了返回的陣列的最大長度。如果設定了該引數,返回的子串不會多於這個引數指定的數字。如果沒有設定該引數,整個字串都會被分割,不考慮它的長度。

返回值

一個字串陣列,是通過在delimiter指定的邊界處將字串string分割成子串建立的。返回的陣列中的子串不包括delimiter自身,但下面列出的情況除外。

描述

方 法split()將建立並返回一個字串陣列,該陣列中的元素是指定的字串string的子串,最多具有limit個。這些子串是通過從頭到尾檢索字元 串中與delimiter匹配的文字,在匹配文字之前和之後分割string得到的。返回的子串中不包括定界符文字(文字部分結尾處提到的情況除外)。如 果定界符從字串開關開始匹配,返回的陣列的第一個元素是空串,即出現在定界符之前的文字。同樣,如果定界符的結尾匹配,返回的陣列的最後一個元素也是空 串(假如與limit沒有衝突)。

如果沒有指定delimite,或者delimite為"",則每個字元都會被分割。

例子

在使用結構複雜的字串時,方法split()最有用。例如:
"1:2:3:4:5".split(":");  // Returns ["1","2","3","4","5"]
"|a|b|c|".split("|");    // Returns ["", "a", "b", "c", ""]

split()方法的另一個常見用法是解析命令的與之相似的字串,用空格將它們分割成單詞:
var words = sentence.split(' ');

正則表示式作為定界符,很容易把字串分割成單詞:
var words = sentence.split(/\s+/);

要把字串分割成字元陣列,可以用空串作為定界符。如果只想把字串前一部分分割成字元陣列,需要使用limit引數:
"hello".split("");     // Returns ["h","e","l","l","o"]
"hello".split("", 3);  // Returns ["h","e","l"]

如果想便返回的陣列包括定界符或定界符的一個或多個部分,可以使用帶子表示式的正則表示式。例如,下面的程式碼將在HTML標記處分割字串,返回的陣列中包括這些標記:
var text = "hello <b>world</b>";
text.split(/(<[^>]*>)/);  // Returns ["hello ","<b>","world","</b>",""]

7、 String.search()
檢索與正則表示式相匹配的子串
Method:
string.search(regexp)

regexp
要在字串string中檢索的RegExp物件,該物件具有指定的模式。如果該引數不是RegExp物件,則首選將它傳遞給RegExp()建構函式,把它轉換成RegExp物件。

返回值

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

描述

方法search()將字串string中檢索與regexp相匹配的子串,並且返回第一個匹配子串的第一個字元的位置。如果沒有找到任何匹配的子串,則返回-1。
search()並不執行全域性匹配,它將忽略標誌g。它也忽略regexp的lastIndex屬性,並且總是從字串的開始進行檢索,這意味著它是返回string的第一個匹配的位置。

例子

var s = "JavaScript is fun";
s.search(/script/i)  // Returns 4
s.search(/a(.)a/)    // Returns 1
8、 String.replace()
替換一個與正則表示式匹配的子串
Method:
string.replace(regexp, replacement)

regexp
聲明瞭要替換的模式的RegExp物件。如果該引數是一個字串,則將它作為要檢索的直接量文字模式,而不是首先被轉換成RegExp物件。
replacement
一個字串,宣告的是替換文字或生成替換文字的函式。

返回值

一個新字串,是用replacement替換了與regexp的第一次匹配或所有匹配之後等到的。

描述

字串string的方法 repace()執行的是查詢並替換操作。它將在string中查詢與regexp相匹配的子串,然後用replacement替換這些子串。如果 regexp具有全域性性質g,那麼replace()將替換所有的匹配子串。否則,它只替換一個匹配子串。

replacement可能是字串或函式。 如果它是一個字串,那麼每個匹配都將由字串替換。但replacement中的$字元具有特殊的含義。如下表所示,它說明從模式匹配得到的字串將用於替換。

例子

要確保單詞“JavaScript”中的大寫字元是正確的,可用下列程式碼:
text.replace(/javascript/i, "JavaScript");
要將名字,“Doe,John”轉換成“John Doe”的形式,可用下列程式碼:
name.replace(/(\w+)\s*,\s*(\w+)/, "$2 $1");
用花括號替換直引號,可用下列程式碼:
text.replace(/"([^"]*)"/g, "''$1''");
使字串中所有單詞的第一個字母都是大寫的,可用下列程式碼:
text.replace(/\b\w+\b/g, function(word) {
return word.substring(0,1).toUpperCase( ) + word.substring(1);
});

9、 String.slice()
抽取一個子串
Method:
string.slice(start, end)

start
要抽取的片段的起始下標。如果是負數,那麼該引數聲明瞭從字串的尾部開始算起的位置。也就是說,-1指字串中的最後一個字元,-2是批倒數第二個字元,以此類推。
end
緊接著要抽取的片段的結尾下標

返回值

一個新字串,包括字串string從start開始(包括start)到end為止(不包括end)的所有字元。

描述

方法slice()將返回一個含有字串string片段的字串或返回它的一個子串。但是該方法不修改string。
String 物件的方法slice()、substring()和substr()(不建議使用)都返回字串的指定部分。slice()比substring()要 靈活一些,因為它允許使用負數作為引數。slice()與substr()有所不同,因為它用兩個字元的位置指定子串,而substr()則用字元位置和 長度來指定子串。還要注意的是,String.slice()與Array.slice

。如果沒有指定這一引數,那麼要抽取的子串包括start到原字串結尾的字串。如果該引數是負數,那麼它聲明瞭從字串的尾部開始算起的位置。 例子     var s = "abcdefg";
s.slice(0,4)    // Returns "abcd"
s.slice(2,4)    // Returns "cd"
s.slice(4)      // Returns "efg"
s.slice(3,-1)   // Returns "def"
s.slice(3,-2)   // Returns "de"
s.slice(-3,-1)  // Should return "ef"; returns "abcdef" in IE 4

Bugs

在Internet Explorer 4中,引數start的值無效(但在IE後來的版本中修正了)。start值指定的不是從字串尾部開始算起的字元位置,而是指定第0個字元的位置。

10、 String.valueOf()
返回字串
Method:
string.valueOf()

返回值

string的原始字串值。

丟擲

TypeError
呼叫該方法的物件不是String時丟擲該異常。

例子:
var a=new String("abc");//一個物件字元型物件object
var b="abc";//一個原始值string
var c=a.valueOf();//把一個物件換成一個原始值
if(typeof(a)==typeof(b)){
alert('a等於b');
} else{
alert('a不等於b');
}
if(typeof(b)==typeof(c)){alert('b等於c');}
var boo = new Boolean(false)
document.write(boo.valueOf())
// 返回 false

11、 String.charCodeAt()
返回字串中的第n個字元的程式碼
Method:
string.charCodeAt(n)

n
    返回編碼的字元的下標。

返回值

string中的第n個字元的Unicode編碼。這個返回值是0~65535之間的16位整數。

描述

方法charCodeAt()與charAt()執行的操作相似,只不過前者返回的是位於指定位置的字元的編碼,而後者返回的則是有字元本身的子串。如果n是負數,或者大於等於字串的長度,則charCodeAt()返回NaN。

要了解從Unicode編碼建立字串的方法,請參閱String.formCharCode()。
12、 String.formCharCode()
從字元編碼建立一個字串
Method:
string.formCharCode(c1, c2, ...)

c1, c2, ...
    零個或多個整數,聲明瞭要建立的字串的字元的Unicode編碼。

返回值

含有指定編碼的字元的新字串。

描述

這個靜態方法提供了一種建立字串的方式,即字串的每個字元都由單獨的數字Unicode編碼指定。注意,作為一種表態方法,fromCharCode()是建構函式String()的屬性,而不是字串或String物件的方法。

String.charCodeAt()是與String.fromCharCode()配套使用的例項方法,它提供了獲取字串中單個字元的編碼的方法。

例子

// Create the string "hello"
var s = String.fromCharCode(104, 101, 108, 108, 111);

13、 String.match()
找到一個或多個正則表示式的匹配
Method:
string.match(regexp)

regexp
    聲明瞭要匹配的模式的RegExp物件。如果該引數不是RegExp物件,則首先將把它傳遞給RegExp()建構函式,把它轉換成RegExp物件。

返回值

存放匹配結果的陣列。該陣列的內容依賴於regexp是否具有全域性性質g。下面詳細說明了這個返回值。

描述

方法match()將檢索字串string,找到一個或多個與regexp匹配的文字。這個方法的行為很大程式上依賴於regexp是否具有性質g。
如 果regexp沒有性質g,那麼match()就只能在string執行一次匹配。如果沒有找到任何匹配的文字有關的資訊。該陣列的第0個元素存放的是匹 配文字,其餘的元素存放的是與正則表示式的子表示式匹配的文字。除了這些常規的陣列元素之外,返回的陣列還含有兩個物件屬性。

例子

下面的全域性匹配可以找到字串中的所有數字:
"1 plus 2 equals 3".match(/\d+/g/);    // Return ["1", "2", "3"]
下面的非全域性匹配使用了列加複雜的正則表示式,它具有幾個用括號括起來的子表示式。與該表示式匹配的是一個URL,與它的子表示式匹配的是那個URL的協議部分、主機部分和路徑部分:
var url = /(\w+):\/\/([\w.]+)\/(\S*)/;
var text = "Visit my home page at http://www.isp.com/~david";
var result = text.match(url);
if (result != null) {
var fullurl = result[0];   // Contains "http://www.isp.com/~david"
var protocol = result[1];  // Contains "http"
var host = result[2];      // Contains "www.isp.com"
var path = result[3];      // Contains "~david"
}

14、 String.concat()
連線字串
Method:
string.concat(value, ...)

value, ...
要連線到string上的一個或多個值。

返回值

把每個引數都連線到字串string上得到新字串。

描述

方法concat()將把它的所有引數都轉換成字串(如果必要),然後按順序連線到字串string的尾部,返回連線後的字串。注意,string自身並沒有被修改。

String.concat()與Array.concat()很相似。注意,使用“+”運算來進行字串的連線運算通常更簡便一些。

15、 String.toLocaleLowerCase(), toLocaleUpperCase(), toLowerCase(), toUpperCase()
把字串轉換成大小寫(Lower小寫, Upper大寫)

string的一個副本,按照本地方式轉換成小/大寫字母。只有幾種語言(如土耳其語)具有地方特有的大小寫對映,此時使用toLocaleLower/UpperCase會和toLower/UpperCase有區別。 通常情況返回值一樣。
16、 String.localeCompare()
用本地特定順序來比較兩個字串
Method:
string.localeCompare(target)

target
    要以本地特定的順序與string進行比較的字串。

返回值

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

描述

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

localeCompare()方法提供的比較字串的方法,考慮了預設的本地排序規則。ECMAScript標準沒有規定如何進行本地特定的比較操作,它只規定該函式採用底層作業系統提供的排序規則。

例子

可以用下列程式碼,按照地方特定的排序規則對一個字串陣列排序。
var strings;  // The array of strings to sort; initialized elsewhere
strings.sort(function(a,b) { return a.localeCompare(b) });

相關推薦

JavaScript String常用方法比較

JS對String的子串判斷的方法,比較容易混淆。 1、 charAt() 返回字串中的第n個字元 Method:  stirng.charAt(n) n 獲取的字元的位置,取值在0<=n<=string.length-1 字串中第一個字元的下標值是0。如果引數n不在0和 string.leng

java中String常用方法、屬性等

col clas equal ack length ++ ava eal rgs package Head18; public class java09 { public static void main(String[] args) { St

Java面向對象-- String 常用方法及基本使用

for str news http clas substr 實例 div print 首先來學習基本使用Jdk api chm文檔: 點擊 左上角-顯示: 1, char chartAt(int index) 返回指定索引處的char值 這裏的index 是從0

Java面向物件-- String 常用方法及基本使用

首先來學習基本使用Jdk api chm文件: 點選 左上角-顯示:     1, char chartAt(int index) 返回指定索引處的char值 這裡的index 是從0開始的; package com.xuyigang1234.chp02.strin

面試JavaScript String物件常用方法

length 返回字串的長度(字元數) 返回指定位置的字元,第一個字元位置為0 返回字串第一個字元的 Unicode 編碼。 用於連線兩個或多個字串。該方法沒有改變原有字串,但是會返回連線兩個或多個字串新字串。 可接受一個指定的 Unicode 值,

Java學習——String常用方法

學習視訊地址:https://www.imooc.com/learn/110   1.常用函式 例項: 執行結果:   2.==於eqauls()的區別 ==: 判斷兩個字串在記憶體中首地址是否相同,即判斷是否是同一個字串物件 e

菜雞的Java課筆記 第十四 String 常用方法

/*String 類常用方法    將所有String類的常用方法全部記下來,包括方法名稱,引數作用以及型別    一個成熟的程式語言,除了它的語法非常完善之外,那麼也需要提供有大量的開發類庫    而需要知道的java

Java基礎-----String常用方法

String類的判斷功能 1、boolean equals(Object obj):比較字串的內容是否相同,區分大小寫。 2、boolean equalsIgnoreCase(String str):比較字串的內容是否相同,忽略大小寫。 3、boolean contains(

面試之JavaScript String物件常用方法

length 返回字串的長度(字元數) var str='Hello World!'; str.length; //12 charAt() 返回指定位置的字元,第一個字元位置為0 var str='Hello World!'; str.charAt(4);

Java String常用方法

Java String類常用方法 1.字串物件操作 2.字串物件修改 1.字串物件操作 方法 public int length():返回當前字串的長度 public char charAt(int

String常用方法總結

連結:https://www.cnblogs.com/ABook/p/5527341.html https://blog.csdn.net/tomcmd/article/details/54881857

Java中String常用方法(轉)

轉自:https://blog.csdn.net/kaishizhangcheng/article/details/52332543int indexOf(String str)該方法用於返回當給定字串在當前字串中的位置,若當前字串不包含給定字串則返回-1。過載的方法int

String常用方法(補充)

一.String類的方法 1.替換功能: 1).public String replace(char oldChar,char newChar):將字串中某一個字元用新的字元替換 2).public

如何替換指定位置的字串(另附String常用方法

如何替換指定位置的字串: 這裡給出字串的兩個位置,pos1和pos2, 如何替換pos1和pos2之間的字串 答:用subString , String.substring(0,pos1)+newString+String.substring(pos2+1) 另附ja

java中String常用方法I(判斷 Java 檔名是否正確,判斷郵箱格式是否正確)

內容摘自慕課網 具體程式碼: public class HelloWorld { public static void main(String[] args) { // Java檔名 String fileName

String常用方法

String類裡面常用的20個方法和長度有關的方法返回型別 方法名 作用 int length() 得到一個字串的字元個數(一箇中文是一個字元,一個英文是一個字元,一個轉義字元是一個字元) 和陣列有關的方法返回型別 方法名

java:String常用的一些方法

1、獲取長度: String str = "i am a student.";   int str1=str.length(); 2、輸入下標,返回字元 String str = "i am a student.";//主串 char c = str.char

StringUtil String工具常用方法集合

記錄日常常用String操作方法,記錄一下,方便以後自己和大家參考使用 /** * 陣列是否包含指定的元素 * * @param fields * ,名稱 * @param n

String常用的成員方法length()和charAt()

char charAt(int index) - 用於返回引數指定下標位置的字元。  int length() - 用於返回當前字串的長度。public class TestStringCharAt

java String equals方法和==的比較

    最近在通過閱讀《深入理解Java虛擬機器——JVM特性與最佳實踐》這本書時,發現書中在介紹執行時常量池中有這樣一段話:“執行時常量池相對於Class檔案常量池的另外一個重要特徵是具備動態性,Java語言並要求常量一定只有編譯期才能產生,也就是並非預置入Class檔案中