Javascript使用字符串函數(shù)實(shí)例教程

2022-06-12發(fā)布者:ylm大?。?/span> 下載:0

文件大小:

軟件介紹

indexOf()函數(shù)

這個(gè)函數(shù)允許你判斷一個(gè)字符串是否存在于一個(gè)更長(zhǎng)的字符串中以及它所處的位置。它等價(jià)于C語(yǔ)言中的strstr函數(shù)以及Visual Basic語(yǔ)言中的inStr函數(shù)。這個(gè)方法也有一個(gè)相應(yīng)的函數(shù):lastIndexOf(),這個(gè)函數(shù)字符串的另外一端搜索。

就象函數(shù)的名字所意味的,返回?cái)?shù)值表明字符串在所搜索字符串中的位置。如果在被搜索的字符串中沒(méi)有找到要查找的字符串就返回-1。這里要注意,在JavaScript中-1是一個(gè)普通的整數(shù),而不是一個(gè)布爾型(Boolen)的數(shù)。以下是具體例子:

var myString = "Have a nice day!";

alert(myString.indexOf("a")); //這里返回1

alert(myString.lastIndexOf("a")); // 這里返回 13

這里還需要再提醒一次,在JavaScript中的數(shù)組的索引是從0開(kāi)始,這跟C語(yǔ)言是遺言的。所以上面的語(yǔ)句alert(myString.indexOf("a"))是返回1,因?yàn)椤盿” 處于字符串"Have a nice day!"的第二個(gè)位置。

細(xì)心一點(diǎn),你可能會(huì)發(fā)現(xiàn)字符串"Have a nice day!"還有一個(gè)字符"a",那怎么才能找到第二個(gè)字母"a"呢?這是一個(gè)很好的問(wèn)題,為了做到這一點(diǎn),我們必須再介紹這個(gè)函數(shù)的第二個(gè)參數(shù)。第二個(gè)參數(shù)是一個(gè)整數(shù),它指示了字符串中開(kāi)始搜索的位置。

為了綜合以上的知識(shí),下面對(duì)代碼進(jìn)行一些來(lái)找到所有字符"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

}

下面詳細(xì)解釋一下這段代碼:變量index被初始化為第一個(gè)"a"所在的位置(如果沒(méi)有"a",那么變量index就為-1)。然后再給出一個(gè)循環(huán),條件是index!=-1。在每次的循環(huán)中,我們將變量index加1,即從找到的"a"后面第一個(gè)字符開(kāi)始繼續(xù)查找,直至將所有的字符"a"找到為止。當(dāng)再也沒(méi)有字符"a"在字符串變量mySring中找到的時(shí)候,就返回-1值,此時(shí)index就等于-1,不滿(mǎn)足循環(huán)條件index!=-1,故導(dǎo)致循環(huán)結(jié)束。而alert(index)語(yǔ)句的輸出為:1,5,13。

在這個(gè)例子中我們只是展示indexOf()進(jìn)行單一字符的搜索。如果你經(jīng)常使用這個(gè)函數(shù),你會(huì)發(fā)現(xiàn)它可以搜索任意的字符或者字符串。

charAt()函數(shù)

這個(gè)函數(shù)返回在字符串中字符處在給定的位置。從本質(zhì)上講,它是substring()方法的一個(gè)特例,但是它也有自己的用途。如果你原來(lái)是個(gè)C語(yǔ)言程序員或者其它相近的語(yǔ)言的程序員,那么你就能理解當(dāng)引用字符的時(shí)候,可以利用string.charAt(index)來(lái)代替string[index]。

下面我們來(lái)在一個(gè)表單輸入中使用這個(gè)函數(shù)。表單中有email地址,當(dāng)然這個(gè)email地址要限制為字符、數(shù)字以及一個(gè)"@"符號(hào)。我們可以一次性講字符串分列為單個(gè)字符來(lái)對(duì)它進(jìn)行強(qiáng)制。詳細(xì)代碼如下:

<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>

發(fā)表評(píng)論(共0條評(píng)論)
請(qǐng)自覺(jué)遵守互聯(lián)網(wǎng)相關(guān)政策法規(guī),評(píng)論內(nèi)容只代表網(wǎng)友觀點(diǎn),發(fā)表審核后顯示!

版權(quán)聲明:

1 本站所有資源(含游戲)均是軟件作者、開(kāi)發(fā)商投稿,任何涉及商業(yè)盈利目的均不得使用,否則產(chǎn)生的一切后果將由您自己承擔(dān)!

2 本站將不對(duì)任何資源負(fù)法律責(zé)任,所有資源請(qǐng)?jiān)谙螺d后24小時(shí)內(nèi)刪除。

3 若有關(guān)在線(xiàn)投稿、無(wú)法下載等問(wèn)題,請(qǐng)與本站客服人員聯(lián)系。

4 如侵犯了您的版權(quán)、商標(biāo)等,請(qǐng)立刻聯(lián)系我們并具體說(shuō)明情況后,本站將盡快處理刪除,聯(lián)系QQ:2499894784

返回頂部