JavaScript常用字串函數

來源:互聯網
上載者:User
JavaScript常用字串函數

最常用的字串方法是:indexOf()、charAt()和substring()
indexOf()函數:

這個函數允許你判斷一個字串是否存在於一個更長的字串中以及它所處的位置。它等價於C語言中的strstr函數以及Visual Basic語言中的inStr函數。這個方法也有一個相應的函數:lastIndexOf(),這個函數字串的另外一端搜尋。

就象函數的名字所意味的,返回數值表明字串在所搜尋字串中的位置。如果在被搜尋的字串中沒有找到要尋找的字串就返回-1。這裡要注意,在JavaScript中-1是一個普通的整數,而不是一個布爾型(Boolen)的數。以下是具體例子:
var myString = "Have a nice day!";
alert(myString.indexOf("a")); //這裡返回1
alert(myString.lastIndexOf("a")); // 這裡返回 13 (最後一個a 所處於的位置)

在JavaScript中的數組的索引是從0開始,這跟C語言是遺言的。所以上面的語句alert(myString.indexOf("a"))是返回1,因為”a” 處於字串"Have a nice day!"的第二個位置。

細心一點,可能會發現字串"Have a nice day!"還有一個字元"a",那怎麼才能找到第二個字母"a"呢?這是一個很好的問題,為了做到這一點,我們必須再介紹這個函數的第二個參數。第二個參數是一個整數,它指示了字串中開始搜尋的位置。

下面對代碼進行一些來找到所有字元"a",具體代碼如下:
var myString = "Have a nice day!";
var index = myString.indexOf("a");
while (index != -1) {
alert(index);
index = myString.indexOf("a", index + 1);
// start search after last match found
}
詳細解釋一下這段代碼:變數index被初始化為第一個"a"所在的位置(如果沒有"a",那麼變數index就為-1)。然後再給出一個迴圈,條件是index!=-1。在每次的迴圈中,我們將變數index加1,即從找到的"a"後面第一個字元開始繼續尋找,直至將所有的字元"a"找到為止。當再也沒有字元"a"在字串變數mySring中找到的時候,就返回-1值,此時index就等於-1,不滿足迴圈條件index!=-1,故導致迴圈結束。而alert(index)語句的輸出為:1,5,13。

charAt()函數:
這個函數返回在字串中字元處在給定的位置。從本質上講,它是substring()方法的一個特例,但是它也有自己的用途。如果你原來是個C語言程式員或者其它相近的語言的程式員,那麼你就能理解當引用字元的時候,可以利用string.charAt(index)來代替string[index]。
下面我們來在一個表單輸入中使用這個函數。表單中有email地址,當然這個email地址要限制為字元、數字以及一個"@"符號。我們可以一次性講字串分列為單個字元來對它進行強制。詳細代碼如下:
<SCRIPT language="JavaScript"> <!-- Hide from older browsers
var parsed = true;
var validchars = "abcdefghijklmnopqrstuvwxyz0123456789@.-";
var email = prompt("What is your email address?", nobody@nowhere.com);
for (var i=0; i < email.length; i++) {
var letter = email.charAt(i).toLowerCase();
if (validchars.indexOf(letter) != -1)
continue;
alert("Invalid character: " + letter);
parsed = false;
break;
}
if (parsed) alert("Your email address contains all valid characters.");
// Stop hiding -->
</SCRIPT>

substring()函數:
這個函數通常使用於提取字串的任何部分。它的參數是'start' 和'end'。開始的數值是第一個字元的索引,結束數值是返回部分之後的第一個字元的索引。你可能聽起來會覺得雲裡霧裡的,但是一個最好的記憶方法是:返回字串的長度等於end-start。
如果第二個參數省略了,那麼它預設為直到字串的結束。下面是幾個例子:var str = "This is a string";
str.substring(1, 3); //結果為hi
str.substring(3, 1); //結果為hi
str.substring(0, 4); //結果為This
str.substring(8); //結果為hi
str.substring(8, 8); //結果為空白
上面的第二個例子是說明了當start>end的時候,那麼這兩個參數自動轉換.最後的例子顯示了:當start等於end的時候,返回數值為空白字串.

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.