国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

Javascript實例教程(17) 使用字符串函數

2019-11-18 15:58:45
字體:
來源:轉載
供稿:網友
字符串對象提供了許多方法,但是很少的程序設計人員充分利用它們,這對于一個程序員來說,不能不說這是一種缺陷。字符串提供的方法可以用于操作字符、產生Html標簽以及搜索字符串等等。

下面首先說說什么是字符串。在javascript語言中,字符串就是一種對象。就象在Java中,它們不是作為一系列的字符被存儲的,所以字符串的操作必須使用內置的構造器和設置函數來完成。在后來的版本中有了字符串構造器和更多的關于對象的概念。在這個層次上說,字符串是由字母而不是數字組成的變量,這就是字符串的概念。

舉個例子,一些有效的字符串為"Hello", "Bob", "Bob2", "33", "33.3",而33或者33.3就不是字符串了。所有的字符串有一個共同的屬性,稱為長度,這個長度返回了字符串中字符的個數。

最常用的字符串方法是:indexOf()、charAt()和substring()。因為這幾個方法在Javascript中經常出現,所以下面我對它們進行具體說明:

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

這里還需要再提醒一次,在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。

在這個例子中我們只是展示indexOf()進行單一字符的搜索。假如你經常使用這個函數,你會發現它可以搜索任意的字符或者字符串。

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

Javascript實例教程(17) 使用字符串函數

(圖1)

如圖1所示。你可以按下”check Email”按鈕,此時就會彈出一個對話框,如圖2所示。

Javascript實例教程(17) 使用字符串函數

(圖2)

你可以在上面隨便填入一個email地址,然后點擊”確定”鍵。接著還會彈出一個檢查Email地址的結果。加入你輸入email地址:purple@pconline.com.cn之后,你就會看到如圖3所示的結果。假如你輸入:ok#pconline.com.cn就會出現如圖4所示的結果,因為#是一個無效的字符。

Javascript實例教程(17) 使用字符串函數

(圖3)

Javascript實例教程(17) 使用字符串函數

(圖4)

以下將具體解釋上面這段代碼:

以上的例子使用了一些字符串的函數、循環語句以及Boolean(布爾)運算。所有的這些在前面的教程中都有提及,當然除了toLowerCase()函數,這個函數下面再介紹。

以上的代碼實際上很簡單,只不過是想測試一下email地址中的每一個字符是不是一個有效的字符而已 。但是實現過程看起來有點笨拙,不象C語言或者Perl語言那樣簡單。從本質上講,我們是使用charAt()來循環瀏覽email地址的字符串以提取出無效的字符。

假如字符是有效的,那就繼續循環;假如字符是無效的,就會彈出一個警告窗口說明那個字符是無效的,此時在設置parsed=false之后使用break語句來結束for循環。

當循環存在,我們可以檢查標志parsed看是否email是有效的。假如parsed為true,那么消息將被顯示。

點擊此處去測試頁面
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的時候,返回數值為空字符串。

字符格式(HTML)

下面介紹JavaScript中最少使用的函數。雖然它們并不是十分有用,但至少它們為你的代碼增加一些裝飾。這些方法從字符對象中創建HTML代碼用于顯示在網頁上。



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 临汾市| 铜陵市| 呼和浩特市| 泰顺县| 鲁甸县| 蛟河市| 嘉义市| 乐山市| 杭锦后旗| 南京市| 建水县| 思茅市| 普宁市| 游戏| 汝州市| 合阳县| 农安县| 夏邑县| 石首市| 彭阳县| 扬州市| 怀集县| SHOW| 太保市| 北京市| 绥德县| 三原县| 乐亭县| 工布江达县| 新蔡县| 太仆寺旗| 全南县| 鹿泉市| 拉萨市| 政和县| 台南市| 阿拉善左旗| 葵青区| 谢通门县| 西宁市| 潼南县|