JavaScript String 對象

JavaScript String 對象

 

  語法:java

        var str1 = new String();正則表達式

        var str2 = "";數組

 

 

 

 

 

字符串的屬性

屬性 描述
constructor 對建立該對象的函數的引用
length 字符串的長度
prototype 容許您向對象添加屬性和方法

 

 

 

 

 

String 對象方法 

方法 描述
concat() 鏈接字符串。
anchor() 建立 HTML 錨。
big() 用大號字體顯示字符串。
blink() 顯示閃動字符串。
bold() 使用粗體顯示字符串。
charAt() 返回在指定位置的字符。
charCodeAt() 返回在指定的位置的字符的 Unicode 編碼。
fixed() 以打字機文本顯示字符串。
fontcolor() 使用指定的顏色來顯示字符串。
fontsize() 使用指定的尺寸來顯示字符串。
fromCharCode() 從字符編碼建立一個字符串。
indexOf() 檢索字符串。
italics() 使用斜體顯示字符串。
lastIndexOf() 從後向前搜索字符串。
link() 將字符串顯示爲連接。
match() 找到一個或多個正則表達式的匹配。
replace() 替換與正則表達式匹配的子串。
search() 檢索與正則表達式相匹配的值。
slice() 提取字符串的片段,並在新的字符串中返回被提取的部分。
small() 使用小字號來顯示字符串。
split() 把字符串分割爲字符串數組。
strike() 使用刪除線來顯示字符串。
sub() 把字符串顯示爲下標。
substr() 從起始索引號提取字符串中指定數目的字符。
substring() 提取字符串中兩個指定的索引號之間的字符。
sup() 把字符串顯示爲上標。
toSource() 表明對象的源代碼。
toString() 返回字符串。
valueOf() 返回某個字符串對象的原始值。

concat() 

用於把一個或多個字符串鏈接到 String 對象的原始值上。該方法返回的是 String 原始值,保持原始的 String 對象不變:安全

var oStringObject = new String("hello ");
var sResult = oStringObject.concat("world");
alert(sResult);		//輸出 "hello world"
alert(oStringObject);	//輸出 "hello "

 

 

 

 

在上面這段代碼中,調用 concat() 方法返回的是 "hello world",而 String 對象存放的仍然是 "hello "。出於這種緣由,較常見的是用加號(+)鏈接字符串,由於這種形式從邏輯上代表了真正的函數

var oStringObject = new String("hello ");
var sResult = oStringObject + "world";
alert(sResult);		//輸出 "hello world"
alert(oStringObject);	//輸出 "hello "

 

 

 

 

indexOf() 和 lastIndeOf() 

indexOf() 和 lastIndexOf() 方法返回的都是指定的子串在另外一個字符串中的位置,若是沒有找不到子串,則返回 -1。字體

這兩個方法的不一樣之處在於,indexOf() 方法是從字符串的開頭(位置 0)開始檢索字符串,而 lastIndexOf() 方法則是從字符串的結尾開始檢索子串。例如:編碼

var oStringObject = new String("hello world!");
alert(oStringObject.indexOf("o"));		輸出 "4"
alert(oStringObject.lastIndexOf("o"));	輸出 "7"

 

 

 

 

在這裏,第一個 "o" 字符串出如今位置 4,即 "hello" 中的 "o";最後一個 "o" 出如今位置 7,即 "world" 中的 "o"。若是該字符串中只有一個 "o" 字符串,那麼 indexOf() 和 lastIndexOf() 方法返回的位置相同。prototype

 

localeCompare() 

下一個方法是 localeCompare(),對字符串進行排序。該方法有一個參數 - 要進行比較的字符串,返回的是下列三個值之一:code

  • 若是 String 對象按照字母順序排在參數中的字符串以前,返回負數。
  • 若是 String 對象等於參數中的字符串,返回 0。
  • 若是 String 對象按照字母順序排在參數中的字符串以後,返回正數。

註釋:若是返回負數,那麼最多見的是 -1,不過真正返回的是由實現決定的。若是返回正數,那麼一樣的,最多見的是 1,不過真正返回的是由實現決定的。對象

示例以下:

var oStringObject = new String("yellow");
alert(oStringObject.localeCompare("brick"));		//輸出 "1"
alert(oStringObject.localeCompare("yellow"));		//輸出 "0"
alert(oStringObject.localeCompare("zoo"));		//輸出 "-1"

 

 

 

 

在這段代碼中,字符串 "yellow" 與 3 個值進行了對比,即 "brick"、"yellow" 和 "zoo"。因爲按照字母順序排列,"yellow" 位於 "brick" 以後,因此 localeCompare() 返回 1;"yellow" 等於 "yellow",因此 localeCompare() 返回 0;"zoo" 位於 "yellow" 以後,localeCompare() 返回 -1。再強調一次,因爲返回的值是由實現決定的,因此最好如下面的方式調用 localeCompare() 方法:

var oStringObject1 = new String("yellow");
var oStringObject2 = new String("brick");

var iResult = oStringObject1.localeCompare(oStringObject2);

if(iResult < 0) {
  alert(oStringObject1 + " comes before " + oStringObject2);
} else if (iResult > 0) {
  alert(oStringObject1 + " comes after " + oStringObject2);
} else {
  alert("The two strings are equal");
}

 

 

 

 

 

 

 

 

採用這種結構,能夠確保這段代碼在全部實現中都能正確運行。

localeCompare() 方法的獨特之處在於,實現所處的區域(locale,兼指國家/地區和語言)確切說明了這種方法運行的方式。在美國,英語是 ECMAScript 實現的標準語言,localeCompare() 是區分大小寫的,大寫字母在字母順序上排在小寫字母以後。不過,在其餘區域,狀況可能並不是如此。

 

slice() 和 substring()

ECMAScript 提供了兩種方法從子串建立字符串值,即 slice() 和 substring()。這兩種方法返回的都是要處理的字符串的子串,都接受一個或兩個參數。第一個參數是要獲取的子串的起始位置,第二個參數(若是使用的話)是要獲取子串終止前的位置(也就是說,獲取終止位置處的字符不包括在返回的值內)。若是省略第二個參數,終止位就默認爲字符串的長度。

與 concat() 方法同樣,slice() 和 substring() 方法都不改變 String 對象自身的值。它們只返回原始的 String 值,保持 String 對象不變。

var oStringObject = new String("hello world");
alert(oStringObject.slice("3"));		//輸出 "lo world"
alert(oStringObject.substring("3"));		//輸出 "lo world"
alert(oStringObject.slice("3", "7"));		//輸出 "lo w"
alert(oStringObject.substring("3", "7"));	//輸出 "lo w"

 

 

 

 

 

在這個例子中,slice() 和 substring() 的用法相同,返回值也同樣。當只有參數 3 時,兩個方法返回的都是 "lo world",由於 "hello" 中的第二個 "l" 位於位置 3 上。當有兩個參數 "3" 和 "7" 時,兩個方法返回的值都是 "lo w"("world" 中的字母 "o" 位於位置 7 上,因此它不包括在結果中)。

爲何有兩個功能徹底相同的方法呢?事實上,這兩個方法並不徹底相同,不過只在參數爲負數時,它們處理參數的方式才稍有不一樣。

對於負數參數,slice() 方法會用字符串的長度加上參數,substring() 方法則將其做爲 0 處理(也就是說將忽略它)。例如:

var oStringObject = new String("hello world");
alert(oStringObject.slice("-3"));		//輸出 "rld"
alert(oStringObject.substring("-3"));	//輸出 "hello world"
alert(oStringObject.slice("3, -4"));		//輸出 "lo w"
alert(oStringObject.substring("3, -4"));	//輸出 "hel"

 

 

 

 

 

這樣便可看出 slice() 和 substring() 方法的主要不一樣。

當只有參數 -3 時,slice() 返回 "rld",substring() 則返回 "hello world"。這是由於對於字符串 "hello world",slice("-3") 將被轉換成 slice("8"),而 substring("-3") 將被轉換成 substring("0")。

一樣,使用參數 3 和 -4 時,差異也很明顯。slice() 將被轉換成 slice(3, 7),與前面的例子相同,返回 "lo w"。而 substring() 方法則將兩個參數解釋爲 substring(3, 0),實際上即 substring(0, 3),由於 substring() 總把較小的數字做爲起始位,較大的數字做爲終止位。所以,substring("3, -4") 返回的是 "hel"。這裏的最後一行代碼用來講明如何使用這些方法。

 

toLowerCase()、toLocaleLowerCase()、toUpperCase() 和 toLocaleUpperCase()

最後一套要討論的方法涉及大小寫轉換。有 4 種方法用於執行大小寫轉換,即

  • toLowerCase()
  • toLocaleLowerCase()
  • toUpperCase()
  • toLocaleUpperCase()

從名字上能夠看出它們的用途,前兩種方法用於把字符串轉換成全小寫的,後兩種方法用於把字符串轉換成全大寫的。

toLowerCase() 和 toUpperCase() 方法是原始的,是以 java.lang.String 中相同方法爲原型實現的。

toLocaleLowerCase() 和 toLocaleUpperCase() 方法是基於特定的區域實現的(與 localeCompare() 方法相同)。在許多區域中,區域特定的方法都與通用的方法徹底相同。不過,有幾種語言對 Unicode 大小寫轉換應用了特定的規則(例如土耳其語),所以必須使用區域特定的方法才能進行正確的轉換。

var oStringObject = new String("Hello World");
alert(oStringObject.toLocaleUpperCase());	//輸出 "HELLO WORLD"
alert(oStringObject.toUpperCase());		//輸出 "HELLO WORLD"
alert(oStringObject.toLocaleLowerCase());	//輸出 "hello world"
alert(oStringObject.toLowerCase());		//輸出 "hello world"

 

 

 

 

 

這段代碼中,toUpperCase() 和 toLocaleUpperCase() 輸出的都是 "HELLO WORLD",toLowerCase() 和 toLocaleLowerCase() 輸出的都是 "hello world"。通常來講,若是不知道在以哪一種編碼運行一種語言,則使用區域特定的方法比較安全。

提示:記住,String 對象的全部屬性和方法均可應用於 String 原始值上,由於它們是僞對象。

相關文章
相關標籤/搜索