語法:java var str1 = new String();正則表達式 var str2 = "";數組 |
屬性 | 描述 |
---|---|
constructor | 對建立該對象的函數的引用 |
length | 字符串的長度 |
prototype | 容許您向對象添加屬性和方法 |
方法 | 描述 |
---|---|
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() | 返回某個字符串對象的原始值。 |
用於把一個或多個字符串鏈接到 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() 和 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(),對字符串進行排序。該方法有一個參數 - 要進行比較的字符串,返回的是下列三個值之一:code
註釋:若是返回負數,那麼最多見的是 -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() 是區分大小寫的,大寫字母在字母順序上排在小寫字母以後。不過,在其餘區域,狀況可能並不是如此。
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"。這裏的最後一行代碼用來講明如何使用這些方法。
最後一套要討論的方法涉及大小寫轉換。有 4 種方法用於執行大小寫轉換,即
從名字上能夠看出它們的用途,前兩種方法用於把字符串轉換成全小寫的,後兩種方法用於把字符串轉換成全大寫的。
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 原始值上,由於它們是僞對象。