首頁  >  文章  >  web前端  >  Javascript基礎教程之資料型態 (字串 String)_基礎知識

Javascript基礎教程之資料型態 (字串 String)_基礎知識

WBOY
WBOY原創
2016-05-16 16:19:471082瀏覽

一.字串

複製程式碼 程式碼如下:

var language = "javascript";
var language = 'javascript';

字串可以使用雙引號和單引號,根據個人愛好而定。

字串具有length屬性,可以傳回變數中字串的個數。

複製程式碼 程式碼如下:

var test1 = "teacher" ;
    document.write(test1.length);
//輸出test1的字串數量:7

反之,想取得指定位置的字符,可以使用charAt()函數(第一個字符為0,第二個字符為1,依次類推)

複製程式碼 程式碼如下:

 var test1 = "teacher" ;
    document.write(test1.charAt(1));
//運行結果為:e ,

如果想要取得變數中的字串,可以採用slice(),substring()或substr()函數。

其中,substring()和slice()都接受兩個參數

複製程式碼 程式碼如下:

    var test1 = "teacher" ;
    document.write(test1.substring(1) "
");// 輸出eacher
    document.write(test1.substring(1,4) "
"); //輸出eac
    document.write(test1.slice(1,4) "
"); //輸出eac
    document.write(test1.slice(4) "
"); //輸出her
    document.write(test1 "
");//完整字串

 從上述內容看出,substring()和slice()都不改變字串內容,只回傳字串的內容。

substing()和slice()的差異主要是對負數的處理不同。

負數參數對於slice()而言,從字串末尾往前計數,對於substring()來說,則是忽略負數,從0開始處理,並將兩個參數中較小的數字作為起始位,較大的作為結束位。

例如substring(2,-3)等同於substing(2,0),也就是等同於substring(0,2)。

複製程式碼 程式碼如下:

   var test1 = "teacher" ;
    document.write(test1.substring(2,-3) "
"); //te
    document.write(test1.substring(2,0) "
"); //te
    document.write(test1.substring(0,2) "
"); //te
    document.write(test1.slice(2,-3) "
"); //ac
    document.write(test1 "
"); //teacher

 substring()和substr()的區別,並舉例說明。

複製程式碼 程式碼如下:

    var tt,ss ;
    var s = "hellobeijing";
    tt = s.substring(2,8) "
";
    ss = s.substr(2,8);
    document.write(tt);//輸出:llobeij 輸出下標2到下標8之間的字元
    document.write(ss); //輸出:llobeiji (輸出下標2後的8個字元)

 對於用法,另一博友有較多實例(地址)

在搜尋字串上,Javascript提供了indexof()和lastindexof()兩個函數。

複製程式碼 程式碼如下:

 var s = "woaibeijing";
    dd = s.indexOf("e") "
";//從前往後
    ee = s.indexOf("e",3) "
";//可選參數,從第幾個字元往後找出
    ff = s.lastIndexOf("e") "
";//從後往前
    gg = s.lastIndexOf("e",3) "
"; //可選參數,從第幾個字元往前找出
    hh = s.lastIndexOf("H") "
";
    document.write(dd);
    document.write(ff);
    document.write(ee);
    document.write(gg);
    document.write(hh);

另外,indexof()和lastindexof()的用法推薦查看這篇文章。 http://www.jb51.net/article/44921.htm

JS中的indexOf和lastIndexOf是處理字串的一個非常好用的函數,下面對它們的定義、用法、注意事項以及使用建議分別作介紹。

1、strObj.indexOf(subString[, startIndex])

功能:傳回來源字串內第一次出現指定子字串的首個字元在來源字串中的索引值(來源字串內第n個字元的索引值為n-1),是整數。

參數意義:

strObj是來源字串,必選項。

subString是在來源字串物件中尋找的子字串,必選項。

startIndex是開始索引值,indexOf函數是從來源字串的索引值為startIndex的字元(即第startIndex 1個字元)開始查找,可選項。省略時,從來源字串索引值為0的字元(即第1個字元)開始尋找。

實例分析:

用法1(不指定startIndex值):var i="huoshandao.com".indexOfOf("a"):則i=5
                                     用法2(指定startIndex值):var i="huoshandao.com".indexOf("a",6):則i=8
提示:可以用alert(i);語句測試結果,以下例子也是。

注意事項

1)strObj既可以是字串,也可以是字串變數。

     [範例]
     strObj為字串:var i="huoshandao.com".indexOf("."):
     strObj為字串變數:var str="huoshandao.com";var i=str.indexOf(".");
2)subString不能為空字串,如果為空字串,傳回值為0,但可以是空格。
     [範例]
     subString為空字串:var i="huo shan dao".indexOf(""):則i=0
     subString為空格字串:var i="huo shan dao".indexOf(" "):則i=3
3)第1個字元的startIndex值是0,是最小索引值;第2個字元的startIndex值是1;最後一個字元的startIndex值則是來源字串長度減1,是最大索引值。
4)如果沒有找到子字串,則傳回 -1。
     [範例]
     var i="huoshandao.com".indexOf("huosan"):則i=-1
5)如果startIndex是負數,則相當於startIndex等於0的情況。如果它大於最大索引值,則相當於startIndex等於最大索引值的情況。
    [範例]
     startIndex為負數: var i="huoshandao.com".indexOf(".",-3);則i=10
                                  與與A="huoshandao.com"..      startIndex大於等於字串長度:var i="huoshandao.com_".indexOf("_",16);則i=-1
                                     Of("_",14);i=14

2、strObj.lastIndexOf(subString[, startIndex])

indexOf 函數是從左向右查找,但實際應用中我們有時想得到從右向左出現某個字元或字串的首個字元索引值,針對這種情況,JS給出另外一個函數lastIndexOf來解決這個問題,使用方法和indexOf相似,只是它從右向左查找而已,具體就不再重複,簡單舉幾個例子,和indexOf作比較:

例1:var i="huo.shan.dao.com".lastIndexOf(".");則i=12而var i="huo.shan.dao.com".indexOf(".") ;的i=3

例2:var i="huoshandao.com_".lastIndexOf("_",16);則i=14而var i="huoshandao.com_".indexOf("_",16);則i=-1


3、使用建議

為了避免出乎意料的結果,除非有特殊用途,建議遵循以下原則:

1、startIndex為非負數,且不大於最大索引值。如果startIndex是變數,要先判斷其值是否在這個範圍內。
2.如果子字串subString是變數的話,要先判斷其是否為空再使用indexOf或lastIndexOf函數。
3.輸入子字串時要特別注意全角字元和半角字元的差別。
4.注意indexOf和lastIndexOf裡面的大小寫,JS對大小寫非常敏感。建議用Dreamweaver編程,如果函數名稱大小寫寫錯的話,函數顏色是黑色,寫對的話則會變成另一種顏色。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn