JavaScript常用字符串函數
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的時候,返回數值為空字符串.
出處:http://jillzhang.cnblogs.com/
本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。

浙公網安備 33010602011771號