一.String:存儲一個字符串,並且提供處理字符串需要的屬性和方法。
1.創建String對象:顯示和隱式
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 <DOCTYPE html> <html> <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/> <head> <title>js函數</title> </head> <script type="text/javascript"> //申明String對象的兩種方式:顯式和隱式申明 //1.隱式 var myString="abc"; document.write(myString+"<br/>"); //2.顯式 var myString2=new String("abc"); document.write(myString2+"<br/>"); </script> <body> </body> </html>*顯式和隱式申明String對象,類型不一樣:隱式申明的string對象,類型是string,而顯式申明的string對象,類型是object。
*顯式與隱式創建字符串真正的區別是,如果你要重復使用同樣的字符串,顯式地創建字符串,有更高的效率;
*顯式地創建字符串,還有利於JavaScript解釋器混淆數字和字符串;
2.使用String對象的方法
String對象,有許多方法,這裡只討論兩個。indexOf()和substring()方法;注意大小寫。
*需要知道的:JavaScript字符串,是由字符組成的。這些字符的每一個都有一個索引。這個索引是從0開始的,所以第一個位置的索引是0;第二個是1,以此類推。
*方法indexOf()查找並返回子字符串起始的索引位置,如果查找的元素不存在,就返回-1,否則返回這個字符所在的索引。(lastIndexOf則返回子字符串結束的位置)
下面寫一個判斷用戶數輸入的Email地址中,是否包含@符號的例子:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 <DOCTYPE html> <html> <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/> <head> <title>js函數</title> </head> <script type="text/javascript"> //讓用戶輸入Email地址,檢查輸入是否包含@符號 //使用prompt方法,獲取用戶輸入的Email地址,檢查是否包含@符號,使用indexof返回@符號的索引 var userInput=prompt("Please enter your email address","Email"); if(Number(userInput.indexOf("@"))==-1) { document.write("對不起,您輸入的Email不合法"); } else { document.write("恭喜您,您輸入的Email通過驗證"); } </script> <body> </body> </html>substring()方法,使用字符串的起始位置和結束位置的索引作為參數,從另一個字符串中截取一個字符串。可以不使用第二個參數,來返回,從第一個索引到字符串結束的所有字符串。比如,我們要截取從第三個到第六個字符的所有字符,可以這樣寫:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 <DOCTYPE html> <html> <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/> <head> <title>js函數</title> </head> <script type="text/javascript"> //從起始位置,到結束位置 var myhello="Hello Javascript World"; var newMyhello= myhello.substring(0); document.write(newMyhello+"<br/>"); //從第三個字符到第六個字符 var myhello="Hello Javascript World"; var newMyhello= myhello.substring(2,5); document.write(newMyhello+"<br/>"); </script> <body> </body> </html>