js String方法__js

來源:互聯網
上載者:User

JavaScript String 對象參考手冊

1.String 對象
String 對象用於處理文本(字串)。

建立 String 對象的文法:
new String(s);
String(s);參數
參數 s 是要儲存在 String 對象中或轉換成原始字串的值。

傳回值
當 String() 和運算子 new 一起作為建構函式使用時,它返回一個新建立的 String 對象,存放的是字串 s 或 s 的字串表示。
當不用 new 運算子調用 String() 時,它只把 s 轉換成原始的字串,並返迴轉換後的值。

2.String 對象屬性:length()
length 屬性可返回字串中的字元數目。
執行個體
<script type="text/javascript">
var txt="Hello World!"
document.write(txt.length)
</script>
輸出:
12

3.一些對樣式的控制方法:
big():用大號字型顯示字串,如:"Hello world!".big()
blink():顯示閃動字串,此方法無法工作於 Internet Explorer 中。
bold():使用粗體顯示字串。
italics():使用斜體顯示字串。
small():使用小字型大小來顯示字串。
strike():使用刪除線來顯示字串。
sub():把字串顯示為下標。
sup():把字串顯示為上標。
toLowerCase(): 把字串轉換為小寫。 
toUpperCase(): 把字串轉換為大寫。 
fixed(): 以打字機文本顯示字串。 
fontcolor(): 使用指定的顏色來顯示字串。 
fontsize(): 使用指定的尺寸來顯示字串。 
link():用於把字串顯示為超連結,如:“百度”.link("http://www.baidu.com"))

4.anchor()
定義和用法
anchor() 方法用於建立 HTML 錨,stringObject.anchor(anchorname)
執行個體
<script type="text/javascript">
var txt="Hello world!"
document.write(txt.anchor("myanchor"))
</script>
上面的代碼將輸出為純粹的 HTML:
<a name="myanchor">Hello world!</a>

5.charAt()
定義和用法
charAt() 方法可返回指定位置的字元。
請注意,JavaScript 並沒有一種有別於字串類型的字元資料類型,所以返回的字元是長度為 1 的字串。

文法:stringObject.charAt(index)參數 描述 
index 必需。表示字串中某個位置的數字,即字元在字串中的下標。 
注釋:字串中第一個字元的下標是 0。如果參數 index 不在 0 與 string.length 之間,該方法將返回一個Null 字元串。

執行個體
<script type="text/javascript">
var str="Hello world!"
document.write(str.charAt(1))
</script>
以上代碼的輸出是:e

6.concat()
定義和用法:concat() 方法用於串連兩個或多個字串。
文法
stringObject.concat(stringX,stringX,...,stringX)參數 描述 ,stringX 必需。將被串連為一個字串的一個或多個字串對象。 
concat() 方法將把它的所有參數轉換成字串,然後按順序串連到字串 stringObject 的尾部,並返回串連後的字串。請注意,stringObject 本身並沒有被更改。
stringObject.concat() 與 Array.concat() 很相似。
提示:請注意,使用 " + " 運算子來進行字串的串連運算通常會更簡便一些。

執行個體
<script type="text/javascript">
var str1="Hello "
var str2="world!"
document.write(str1.concat(str2))
</script>
以上代碼的輸出是:Hello world!

7.indexOf()
定義和用法:indexOf() 方法可返回某個指定的字串值在字串中首次出現的位置。
文法:stringObject.indexOf(searchvalue,fromindex)參數 描述 
searchvalue 必需。規定需檢索的字串值。 
fromindex 可選的整數參數。規定在字串中開始檢索的位置。它的合法取值是 0 到 stringObject.length - 1。如省略該參數,則將從字串的首字元開始檢索。 
注釋:indexOf() 方法對大小寫敏感。
注釋:如果要檢索的字串值沒有出現,則該方法返回 -1。

執行個體
<script type="text/javascript">
var str="Hello world!"
document.write(str.indexOf("Hello") + "<br />")
document.write(str.indexOf("World") + "<br />")
document.write(str.indexOf("world"))
</script>
以上代碼的輸出:0 ,-1,6

8.lastIndexOf()
介紹同indexOf()
執行個體
<script type="text/javascript">
var str="Hello world!"
document.write(str.lastIndexOf("Hello") + "<br />")
document.write(str.lastIndexOf("World") + "<br />")
document.write(str.lastIndexOf("world"))
</script>
以上代碼的輸出:0,-1,6

9.localeCompare()
定義和用法:用本地特定的順序來比較兩個字串。
文法:
stringObject.localeCompare(target)參數 描述 
target 要以本地特定的順序與 stringObject 進行比較的字串。

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

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

localeCompare() 方法提供的比較字串的方法,考慮了預設的本地定序。ECMAscript 標準並沒有規定如何進行本地特定的比較操作,它只規定該函數採用底層作業系統提供的定序。
執行個體
var str;
str.sort (
function(a,b){
   return a.localeCompare(b)
   }
)

10.match()
定義和用法
match() 方法可在字串內檢索指定的值,或找到一個或多個Regex的匹配。
該方法類似 indexOf() 和 lastIndexOf(),但是它返回指定的值,而不是字串的位置。

文法
stringObject.match(searchvalue)
stringObject.match(regexp)
參數 描述 :searchvalue 必需。規定要檢索的字串值。 
regexp 必需。規定要匹配的模式的 RegExp 對象。如果該參數不是 RegExp 對象,則需要首先把它傳遞給 RegExp 建構函式,將其轉換為 RegExp 對象。

傳回值
存放匹配結果的數組。該數組的內容依賴於 regexp 是否具有全域標誌 g。
說明
match() 方法將檢索字串 stringObject,以找到一個或多個與 regexp 匹配的文本。這個方法的行為在很大程度上有賴於 regexp 是否具有標誌 g。
如果 regexp 沒有標誌 g,那麼 match() 方法就只能在 stringObject 中執行一次匹配。如果沒有找到任何匹配的文本, match() 將返回 null。否則,它將返回一個數組,其中存放了與它找到的匹配文本有關的資訊。該數組的第 0 個元素存放的是匹配文本,而其餘的元素存放的是與Regex的子運算式匹配的文本。除了這些常規的數組元素之外,返回的數組還含有兩個對象屬性。index 屬性聲明的是匹配文本的起始字元在 stringObject 中的位置,input 屬性聲明的是對 stringObject 的引用。
如果 regexp 具有標誌 g,則 match() 方法將執行全域檢索,找到 stringObject 中的所有匹配子字串。若沒有找到任何匹配的子串,則返回 null。如果找到了一個或多個匹配子串,則返回一個數組。不過全域匹配返回的數組的內容與前者大不相同,它的數組元素中存放的是 stringObject 中所有的匹配子串,而且也沒有 index 屬性或 input 屬性。
注意:在全域檢索模式下,match() 即不提供與子運算式匹配的文本的資訊,也不聲明每個匹配子串的位置。如果您需要這些全域檢索的資訊,可以使用 RegExp.exec()。

例子 1
<script type="text/javascript">
var str="Hello world!"
document.write(str.match("world") + "<br />")
document.write(str.match("World") + "<br />")
document.write(str.match("worlld") + "<br />")
document.write(str.match("world!"))
</script>
輸出:world,null,null,world!

例子 2
<script type="text/javascript">
var str="1 plus 2 equal 3"
document.write(str.match(//d+/g))
</script>
輸出:1,2,3

11.replace()
定義和用法
replace() 方法用於在字串中用一些字元替換另一些字元,或替換一個與Regex匹配的子串。

文法
stringObject.replace(regexp,replacement)
參數 描述 :regexp 必需。規定了要替換的模式的 RegExp 對象。請注意,如果該值是一個字串,則將它作為要檢索的直接量文字模式,而不是首先被轉換為 RegExp 對象。 
replacement 必需。一個字串值。規定了替換文本或產生替換文本的函數。 
傳回值
一個新的字串,是用 replacement 替換了 regexp 的第一次匹配或所有匹配之後得到的。

說明
字串 stringObject 的 replace() 方法執行的是尋找並替換的操作。它將在 stringObject 中尋找與 regexp 相匹配的子字串,然後用 replacement 來替換這些子串。如果 regexp 具有全域標誌 g,那麼 replace() 方法將替換所有匹配的子串。否則,它只替換第一個匹配子串。

replacement 可以是字串,也可以是函數。如果它是字串,那麼沒有匹配都將由字串替換。但是 replacement 中的 $ 字元具有特定的含義。如下表所示,它說明從模式比對得到的字串將用於替換。

字元 替換文本 
$1、$2、...、$99 與 regexp 中的第 1 到第 99 個子運算式相匹配的文本。 
$& 與 regexp 相匹配的子串。 
$` 位於匹配子串左側的文本。 
$' 位於匹配子串右側的文本。 
$$ 直接量符號。

注意:ECMAScript v3 規定,replace() 方法的參數 replacement 可以是函數而不是字串。在這種情況下,每個匹配都調用該函數,它返回的字串將作為替換文本使用。該函數的第一個參數是匹配模式的字串。接下來的參數是與模式中的子運算式匹配的字串,可以有 0 個或多個這樣的參數。接下來的參數是一個整數,聲明了匹配在 stringObject 中出現的位置。最後一個參數是 stringObject 本身。

例子 1
<script type="text/javascript">
var str="Visit Microsoft!"
document.write(str.replace(/Microsoft/, "W3School"))
</script>
輸出:Visit W3School!

例子 2:全域搜尋 
<script type="text/javascript">
var str="Welcome to Microsoft! "
str=str + "We are proud to announce that Microsoft has "
str=str + "one of the largest Web Developers sites in the world."

document.write(str.replace(/Microsoft/g, "W3School"))
</script>
輸出:
Welcome to W3School! We are proud to announce that W3School
has one of the largest Web Developers sites in the world.

例子 3:對大小寫不敏感的搜尋 
text = "javascript Tutorial";
text.replace(/javascript/i, "JavaScript");

例子 4:如何使用 replace() 來轉換姓名的格式。 
name = "Doe, John";
name.replace(/(/w+)/s*, /s*(/w+)/, "$2 $1");

例子 5:如何使用 replace() 來轉換引號。
name = '"a", "b"';
name.replace(/"([^"]*)"/g, "'$1'");

例子 6:如何使用 replace() 把單詞的首字母轉換為大寫。 
name = 'aaa bbb ccc';
uw=name.replace(//b/w+/b/g, function(word){
return word.substring(0,1).toUpperCase()+word.substring(1);}
);

12.search()
定義和用法
search() 方法用於檢索字串中指定的子字串,或檢索與Regex相匹配的子字串。

文法
stringObject.search(regexp)參數 描述 
regexp 該參數可以是需要在 stringObject 中檢索的子串,也可以是需要檢索的 RegExp 對象。

注釋:要執行忽略大小寫檢索,請追加標誌 i。

傳回值
stringObject 中第一個與 regexp 相匹配的子串的起始位置。

注釋:如果沒有找到任何匹配的子串,則返回 -1。

說明
search() 方法不執行全域匹配,它將忽略標誌 g。它同時忽略 regexp 的 lastIndex 屬性,並且總是從字串的開始進行檢索,這意味著它總是返回 stringObject 的第一個匹配的位置。

例子 1
<script type="text/javascript">
var str="Visit W3School!"
document.write(str.search(/W3School/))
</script>
輸出:6

13.slice()
定義和用法
slice() 方法可提取字串的某個部分,並以新的字串返回被提取的部分。

文法
stringObject.slice(start,end)參數 描述 
start 要抽取的片斷的起始下標。如果是負數,則該參數規定的是從字串的尾部開始算起的位置。也就是說,-1 指字串的最後一個字元,-2 指倒數第二個字元,以此類推。 
end 緊接著要抽取的片段的結尾的下標。若未指定此參數,則要提取的子串包括 start 到原字串結尾的字串。如果該參數是負數,那麼它規定的是從字串的尾部開始算起的位置。

傳回值
一個新的字串。包括字串 stringObject 從 start 開始(包括 start)到 end 結束(不包括 end)為止的所有字元。

說明
String 對象的方法 slice()、substring() 和 substr() (不建議使用)都可返回字串的指定部分。slice() 比 substring() 要靈活一些,因為它允許使用負數作為參數。slice() 與 substr() 有所不同,因為它用兩個字元的位置來指定子串,而 substr() 則用字元位置和長度來指定子串。

還要注意的是,String.slice() 與 Array.slice() 相似。

例子 1
<script type="text/javascript">
var str="Hello happy world!"
document.write(str.slice(6))
</script>
輸出:happy world!

例子 2
<script type="text/javascript">
var str="Hello happy world!"
document.write(str.slice(6,11))
</script>
輸出:happy

14.split()
定義和用法
split() 方法用於把一個字串分割成字串數組。

文法
stringObject.split(separator,howmany)參數 描述 
separator 必需。字串或Regex,從該參數指定的地方分割 stringObject。 
howmany 可選。該參數可指定返回的數組的最大長度。如果設定了該參數,返回的子串不會多於這個參數指定的數組。如果沒有設定該參數,整個字串都會被分割,不考慮它的長度。

傳回值
一個字串數組。該數組是通過在 separator 指定的邊界處將字串 stringObject 分割成子串建立的。返回的數組中的字串不包括 separator 自身。

但是,如果 separator 是包含子運算式的Regex,那麼返回的數組中包括與這些子運算式匹配的字串(但不包括與整個Regex匹配的文本)。
提示和注釋
注釋:如果把Null 字元串 ("") 用作 separator,那麼 stringObject 中的每個字元之間都會被分割。

注釋:String.split() 執行的操作與 Array.join 執行的操作是相反的。

例子 1
<script type="text/javascript">
var str="How are you doing today?"

document.write(str.split(" ") + "<br />")
document.write(str.split("") + "<br />")
document.write(str.split(" ",3))
</script>
輸出:
How,are,you,doing,today?
H,o,w, ,a,r,e, ,y,o,u, ,d,o,i,n,g, ,t,o,d,a,y,?
How,are,you

例子 2
"2:3:4:5".split(":") //將返回["2", "3", "4", "5"]
"|a|b|c".split("|") //將返回["", "a", "b", "c"]

例子 3:若只需要返回一部分字元,請使用 howmany 參數:
"hello".split("", 3) //可返回 ["h", "e", "l"]

15.substr()
定義和用法
substr() 方法可在字串中抽取從 start 下標開始的指定數目的字元。

文法
stringObject.substr(start,length)參數 描述 
start 必需。要抽取的子串的起始下標。必須是數值。如果是負數,那麼該參數聲明從字串的尾部開始算起的位置。也就是說,-1 指字串中最後一個字元,-2 指倒數第二個字元,以此類推。
length 可選。子串中的字元數。必須是數值。如果省略了該參數,那麼返回從 stringObject 的開始位置到結尾的字串。

傳回值
一個新的字串,包含從 stringObject 的 start(包括 start 所指的字元) 處開始的 lenght 個字元。如果沒有指定 lenght,那麼返回的字串包含從 start 到 stringObject 的結尾的字元。
提示和注釋
注釋:substr() 的參數指定的是子串的開始位置和長度,因此它可以替代 substring() 和 splice() 來使用。

重要事項:ECMAscript 沒有對該方法進行標準化,因此反對使用它。
重要事項:在 IE 4 中,參數 start 的值無效。在這個 BUG 中,start 規定的是第 0 個字元的位置。在之後的版本中,此 BUG 已被修正。

例子 1
<script type="text/javascript">
var str="Hello world!"
document.write(str.substr(3))
</script>

16.substring()
定義和用法
substring() 方法用於提取字串中介於兩個指定下標之間的字元。

文法
stringObject.substring(start,stop)參數 描述 
start 必需。一個非負的整數,規定要提取的子串在第一個字元在 stringObject 中的位置。 
stop 可選。一個非負的整數,比要提取的子串的最後一個字元在 stringObject 中的位置多 1。如果省略該參數,那麼返回的子串會一直到字串的結尾。

傳回值
一個新的字串,該字串值包含 stringObject 的一個子字串,其內容是從 start 處到 stop-1 處的所有字元,其長度為 stop 減 start。

說明
substring() 方法返回的子串包括 start 處的字元,但不包括 end 處的字元。

如果參數 start 與 end 相等,那麼該方法返回的就是一個空串(即長度為 0 的字串)。如果 start 比 end 大,那麼該方法在提取子串之前會先交換這兩個參數。
提示和注釋
重要事項:與 slice() 和 substr() 方法不同的是,substring() 不接受負的參數。

例子 2
<script type="text/javascript">
var str="Hello world!"
document.write(str.substring(3,7))
</script>

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.