Javascript基礎(chǔ)教程之?dāng)?shù)據(jù)類型 (字符串 String)
一.字符串
var language = "javascript";
var language = 'javascript';
字符串可以使用雙引號和單引號,根據(jù)個(gè)人愛好而定。
字符串具有l(wèi)ength屬性,可以返回變量中字符串的個(gè)數(shù)。
var test1 = "teacher" ;
document.write(test1.length);
//輸出test1的字符串個(gè)數(shù):7
反之,想獲取指定位置的字符,可以使用charAt()函數(shù)(第一個(gè)字符為0,第二個(gè)字符為1,依次類推)
var test1 = "teacher" ;
document.write(test1.charAt(1));
//運(yùn)行結(jié)果為:e ,
如果想取得變量中的字符串,可以采用slice(),substring()或者substr()函數(shù)。
其中,substring()和slice()都接受兩個(gè)參數(shù)
var test1 = "teacher" ;
document.write(test1.substring(1)+"<br>");// 輸出eacher
document.write(test1.substring(1,4)+"<br>"); //輸出eac
document.write(test1.slice(1,4)+"<br>"); //輸出eac
document.write(test1.slice(4)+"<br>"); //輸出her
document.write(test1 + "<br>");//完整字符串
從以上內(nèi)容看出,substring()和slice()都不改變字符串內(nèi)容,只返回字符串的內(nèi)容。
substing()和slice()的區(qū)別主要是對負(fù)數(shù)的處理不同。
負(fù)數(shù)參數(shù)對于slice()而言,從字符串末尾往前計(jì)數(shù),對于substring()來說,則是忽略負(fù)數(shù),從0開始處理,并將兩個(gè)參數(shù)中較小的數(shù)字作為起始位,較大的作為結(jié)束位。
例如substring(2,-3)等同于substing(2,0),也就是等同于substring(0,2)。
var test1 = "teacher" ;
document.write(test1.substring(2,-3)+"<br>"); //te
document.write(test1.substring(2,0)+"<br>"); //te
document.write(test1.substring(0,2)+"<br>"); //te
document.write(test1.slice(2,-3)+"<br>"); //ac
document.write(test1 + "<br>"); //teacher
substring()和substr()的區(qū)別,舉例說明。
var tt,ss ;
var s = "hellobeijing";
tt = s.substring(2,8)+"<br>";
ss = s.substr(2,8);
document.write(tt);//輸出:llobeij 輸出下標(biāo)2到下標(biāo)8之間的字符
document.write(ss); //輸出:llobeiji (輸出下標(biāo)2后的8個(gè)字符)
對于用法,另一博友有更多實(shí)例(地址)
在搜索字符串上,Javascript提供了indexof()和lastindexof()兩個(gè)函數(shù)。
var s = "woaibeijing";
dd = s.indexOf("e")+"<br>";//從前往后
ee = s.indexOf("e",3)+"<br>";//可選參數(shù),從第幾個(gè)字符往后查找
ff = s.lastIndexOf("e")+"<br>";//從后往前
gg = s.lastIndexOf("e",3)+"<br>"; //可選參數(shù),從第幾個(gè)字符往前查找
hh = s.lastIndexOf("H")+"<br>";
document.write(dd);
document.write(ff);
document.write(ee);
document.write(gg);
document.write(hh);
另外,indexof()和lastindexof()的用法推薦查看這篇文章。http://chabaoo.cn/article/44921.htm
JS中的indexOf和lastIndexOf是處理字符串的一個(gè)非常好用的函數(shù),下面對它們的定義、用法、注意事項(xiàng)以及使用建議分別作介紹。
1、strObj.indexOf(subString[, startIndex])
功能:返回源字符串內(nèi)第一次出現(xiàn)指定子字符串的首個(gè)字符在源字符串中的索引值(源字符串內(nèi)第n個(gè)字符的索引值為n-1),是整數(shù)。
參數(shù)含義:
strObj是源字符串,必選項(xiàng)。
subString是在源字符串對象中查找的子字符串,必選項(xiàng)。
startIndex是開始索引值,indexOf函數(shù)是從源字符串的索引值為startIndex的字符(即第startIndex+1個(gè)字符)開始查找,可選項(xiàng)。省略時(shí),從源字符串索引值為0的字符(即第1個(gè)字符)開始查找。
實(shí)例分析:
用法1(不指定startIndex值):var i="huoshandao.com".indexOfOf("a"):則i=5
相當(dāng)于var i="huoshandao.com".indexOf("a",0)
用法2(指定startIndex值):var i="huoshandao.com".indexOf("a",6):則i=8
提示:可以用alert(i);語句測試結(jié)果,以下例子也一樣。
注意事項(xiàng)
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個(gè)字符的startIndex值是0,是最小索引值;第2個(gè)字符的startIndex值是1;最后一個(gè)字符的startIndex值則是源字符串長度減1,是最大索引值。
4)如果沒有找到子字符串,則返回 -1。
[例子]
var i="huoshandao.com".indexOf("huosan"):則i=-1
5)如果startIndex是負(fù)數(shù),則相當(dāng)于startIndex等于0的情況。如果它大于最大索引值,則相當(dāng)于startIndex等于最大索引值的情況。
[例子]
startIndex為負(fù)數(shù): var i="huoshandao.com".indexOf(".",-3);則i=10
與var i="huoshandao.com".indexOf(".",0);結(jié)果一樣
startIndex大于等于字符串長度:var i="huoshandao.com_".indexOf("_",16);則i=-1
與var i="huoshandao.com_".indexOf("_",14);i=14
2、strObj.lastIndexOf(subString[, startIndex])
indexOf 函數(shù)是從左向右查找,但實(shí)際應(yīng)用中我們有時(shí)想得到從右向左出現(xiàn)某個(gè)字符或字符串的首個(gè)字符索引值,針對這種情況,JS給出另外一個(gè)函數(shù) lastIndexOf來解決這個(gè)問題,使用方法和indexOf相似,只是它從右向左查找而已,具體就不再重復(fù),簡單舉幾個(gè)例子,和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、使用建議
為了避免出乎意料的結(jié)果,除非有特殊用途,建議遵循以下原則:
1、startIndex為非負(fù)數(shù),并且不大于最大索引值。如果startIndex是變量,要先判斷其值是否在這個(gè)范圍內(nèi)。
2、如果子字符串subString是變量的話,要先判斷其是否為空再使用indexOf或lastIndexOf函數(shù)。
3、輸入子字符串時(shí)要特別注意全角字符和半角字符的區(qū)別。
4、注意indexOf和lastIndexOf里面的大小寫,JS對大小寫非常敏感。建議用Dreamweaver編程,如果函數(shù)名大小寫寫錯(cuò)的話,函數(shù)顏色是黑色,寫對的話則會(huì)變成另外一種顏色。
- javascript數(shù)據(jù)類型基礎(chǔ)示例教程
- JavaScript基礎(chǔ)語法與數(shù)據(jù)類型介紹
- js中基礎(chǔ)的數(shù)據(jù)類型詳解
- javascript基礎(chǔ)之?dāng)?shù)據(jù)類型詳解
- JavaScript的基礎(chǔ)語法和數(shù)據(jù)類型詳解
- JavaScript 變量,數(shù)據(jù)類型基礎(chǔ)實(shí)例詳解【變量、字符串、數(shù)組、對象等】
- JavaScript基礎(chǔ)心法 數(shù)據(jù)類型
- 淺談js基礎(chǔ)數(shù)據(jù)類型和引用類型,深淺拷貝問題,以及內(nèi)存分配問題
- Javascript基礎(chǔ)教程之?dāng)?shù)據(jù)類型轉(zhuǎn)換
- Javascript基礎(chǔ)教程之?dāng)?shù)據(jù)類型 (布爾型 Boolean)
- Javascript基礎(chǔ)教程之?dāng)?shù)據(jù)類型 (數(shù)值 Number)
- JavaScript基礎(chǔ)知識之?dāng)?shù)據(jù)類型
- javascript 基礎(chǔ)篇2 數(shù)據(jù)類型,語句,函數(shù)
- javascript基礎(chǔ)數(shù)據(jù)類型轉(zhuǎn)換教程示例
相關(guān)文章
document.getElementBy("id")與$("#id")有什么區(qū)
有朋友問document.getElementBy("id")與$("#id")的區(qū)別,其實(shí)第一個(gè)就是js中獲取對象的方法, 第二個(gè)是通過自定義函數(shù)方便調(diào)用,而第三個(gè)是jquery中獲取id對象的方法2013-09-09JavaSacript中charCodeAt()方法的使用詳解
這篇文章主要介紹了JavaSacript中charCodeAt()方法的使用詳解,是JS入門學(xué)習(xí)中的基本知識,需要的朋友可以參考下2015-06-06setTimeout和setInterval的瀏覽器兼容性分析
setTimeout和setInterval的瀏覽器兼容性分析...2007-02-02JS限制上傳圖片大小不使用控件在本地實(shí)現(xiàn)
文件上傳之前的檢測,通常是通過文件名來判斷文件類型是否合法,但是要想檢測文件的大小很難辦到,除非在本地或者使用控件。使用JS可以輕松解決詞問題,本文詳細(xì)介紹,需要了解的朋友可以參考下2012-12-12javascript學(xué)習(xí)筆記(十六) 系統(tǒng)對話框(alert、confirm、prompt)
javascript學(xué)習(xí)筆記之系統(tǒng)對話框(alert、confirm、prompt)使用介紹,學(xué)習(xí)js的朋友可以參考下2012-06-06