一、String 字符串對象
定義字符串的方法就是直接賦值。
比如:
var mystr = "I love JavaScript!"
定義mystr字符串后,我們就可以訪問它的屬性和方法。
1/訪問字符串對象的屬性length:
stringObject.length; //返回該字符串的長度。
【例如】
var mystr="Hello World!";
var myl=mystr.length;
以上代碼執行后,myl 的值將是:12
2/訪問字符串對象的大小寫變化:toUpperCase()與toLowerCase()
【語法】:
stringObject.toUpperCase()
【功能】:把字符串轉換為大寫。
【語法】:
stringObject.toLowerCase()
【功能】:把字符串轉換為小寫。
【案例】:使用 String 對象的 toUpperCase() 方法來將字符串小寫字母轉換為大寫:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>string對象 </title>
<script type="text/javascript">
var message="I love JavaScript!";
var mychar= message.toUpperCase();
document.write("字符串為:"+mychar+"<br>");
</script>
</head>
<body>
</body>
</html>
【備注】
如果是變小寫,則 message.toUpperCase()替換為message.toLowerCase();
二、返回指定位置的字符charAt()
方法可返回指定位置的字符。返回的字符是長度為 1 的字符串。
【語法】:
stringObject.charAt(index)
【參數說明】:
index:必需。表示字符串中某個位置的數字,即字符在字符串中的下標。
【注意】:
1:字符串中第一個字符的下標是 0。最后一個字符的下標為字符串長度減一(string.length-1)。
2:如果參數 index 不在 0 與 string.length-1 之間,該方法將返回一個空字符串。
3:一個空格也算一個字符。
【案例】返回最后一個字符。
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>string對象 </title>
<script type="text/javascript">
var mystr="I love JavaScript!"
document.write(mystr.charAt(mystr.length-1));
</script>
</head>
<body>
</body>
</html>
三、返回指定的字符串首次出現的位置indexOf()
indexOf()方法可返回某個指定的字符串值在字符串中首次出現的位置。
【語法】:
stringObject.indexOf(substring, startpos)
【參數說明】:
substring:必需。規定需檢索的字符串值。
startpos:可選的整數參數。規定在字符串中開始檢索的位置。它的合法取值是0到stringObjectlength-1.如果省略該參數,則將從字符串的首字符開始檢索。
【語法說明】:
1.該方法將從頭到尾地檢索字符串 stringObject,看它是否含有子串 substring。
2.可選參數,從stringObject的startpos位置開始查找substring,如果沒有此參數將從stringObject的開始位置查找。
3.如果找到一個 substring,則返回 substring 的第一次出現的位置。stringObject 中的字符位置是從 0 開始的。
【注意】:
1:indexOf() 方法區分大小寫。
2:如果要檢索的字符串值沒有出現,則該方法返回 -1。
【案例】使用indexOf()方法,檢索第二個字符o出現的位置。
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>string對象 </title>
<script type="text/javascript">
var mystr="Hello World!"
document.write(mystr.indexOf('o',mystr.indexOf('o')+1));
</script>
</head>
<body>
</body>
</html>
【結果】為7
四、掌握字符串對象的方法:split()和replace()
- 1/字符串分割split()
split() 方法將字符串分割為字符串數組,并返回此數組。
【語法】:
stringObject.split(separator,limit)
【參數說明】:
separator 必需。從該參數指定的地方分割stringObject。
limit 可選參數,分割的次數,如設置該參數,返回的子串不會多于這個參數指定的數組,如果無此參數為不限制次數。
【注意】
如果把空字符串("")用作separator,那么stringObject中的每個字符之間都會被分割。
【案例】:
運用split()方法,完成以下任務,并輸出:1.以字符"-"分隔字符串對象mystr。2. 將字符串對象mystr每個字符分割。3. 將字符串對象mystr分割成字符,分割3次。
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>無標題文檔</title>
<script type="text/javascript">
var mystr="86-010-85468578";
document.write(mystr.split("-")+ "<br />");//1.以字符"-"分隔字符串對象mystr
document.write(mystr.split("")+ "<br />");//2. 將字符串對象mystr每個字符分割。
document.write(mystr.split("-",3));//3. 將字符串對象mystr分割成字符,分割3次。
</script>
</head>
<body>
</body>
</html>
【結果】
【案例】:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>string綜合應用</title>
</head>
<body>
<script>
var str="tom/how/are/you/doing/today";
var arr=str.split("/");
console.log(arr);
</script>
</body>
</html>
【結果】:
2/replace替換
【語法】:
stringObject.replace(regexp/substr,replacement)
【功能】:
在字符串中用一些字符替換另一些字符,或替換一個與正則式匹配的子串。
【返回值】:string
【參數】:
regexp:必需。規定子字符串或要替換的模式的RegExp對象。
replacement:必需。一個字符串值。
【案例】:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>string綜合應用</title>
</head>
<body>
<script>
//替換
var tel="010-62971268,400-100-9098,010-86789889";
var newTel=tel.replace(","," ");
console.log(newTel);
</script>
</body>
</html>
【結果】:
五、提取字符串:slice()、substring()、substr()
- 1/提取字符串slice()
【語法】:
stringObject.slice(start,end)
【功能】:
截取子字符串。
【參數說明】:
1.start:必需,指定子字符串的開始位置。
2.end:可選,表示子字符串到哪里結束,
若end本身不在截取范圍之內(即end-1),省略時截取至字符串的末尾。
3.當為負數時,其值為字符串長度+該負數
【案例】:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<script>
var str="hello world";
//截取orl
console.log(str.slice(7,10));
</script>
</body>
</html>
-2/ 提取字符串substring
substring() 方法用于提取字符串中介于兩個指定下標之間的字符。
【語法】:
stringObject.substring(startPos,stopPos)
startPos 必需。一個非負的整數,開始位置。
stopPos 可選。一個非負的整數,結束位置,如果省略該參數,那么返回的子串會一直到字符串對象的結尾。
說明:
console.log(str.substring(-7,5));//當第一個為負值時直接等同于0,即(0,5)
console.log(str.substring(2,-5));//當第二個數值比第一個小的時候,直接調整順序為小到大截取,即(0,2)
【注意】:
1:返回的內容是從 start開始(包含start位置的字符)到 stop-1 處的所有字符,其長度為 stop 減start。
2:如果參數 start 與 stop 相等,那么該方法返回的就是一個空串(即長度為 0 的字符串)。
3:如果 start 比 stop 大,那么該方法在提取子串之前會先交換這兩個參數。
【案例】:
運用substring()方法,完成子字符串Hello World!的提取:1.從字符對象mystr中提取World!子字符串。2. 從字符對象mystr中提取Hello子字符串。
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>string對象</title>
<script type="text/javascript">
var mystr="Hello World!"
document.write(mystr.substring(6)+ "<br />");
document.write(mystr.substring(0,5));
</script>
</head>
<body>
</body>
</html>
【結果】
★【辨析】substring()與slice()
它倆語法及功能完全一樣。
區別在于:
1.當substring()參數為負數時,自動將參數轉換為0.
2.substring()會將較小的數作為開始位置,將較大的數作為結束位置。
- 3/提取指定數目的字符substr()
substr() 方法從字符串中提取從 startPos位置開始的指定數目的字符串。
【語法】:
stringObject.substr(startPos,length)
【參數說明】
startPos 必需。要提取的子串的起始位置。必須是數值。
length 可選。提取字符串的長度。如果省略,返回從stringObject的開始位置startPos到stringObject的結尾的字符。
【注意】
如果參數startPos是負數,從字符串的尾部開始算起的位置。也就是說,-1 指字符串中最后一個字符,-2 指倒數第二個字符,以此類推。
如果startPos為負數且絕對值大于字符串長度,startPos為0。
【案例】
運用substr()方法,完成以下任務:1.提取字符world!。2.提取字符Hello。
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>substr()</title>
<script type="text/javascript">
var mystr="Hello World!";
document.write( mystr.substr(6)+ "<br />");
document.write(mystr.substr(0,5));
</script>
</head>
<body>
</body>
</html>
★綜合應用1
掌握字符串方法的綜合應用:
編寫js函數,用于獲得輸入參數的后綴名,如輸入abc.txt,返回.txt
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>string綜合應用</title>
</head>
<body>
<script>
//獲取擴展名
var url="http://baidu.com/index.txt";
function getFileFormat(url){
//獲取.在url中出現的位置
var pos=url.lastIndexOf(".");
return url.substr(pos);
}
var formatName=getFileFormat(url);
var picForamt=getFileFormat("1231434.jpg");
console.log(formatName);
console.log(picForamt);
</script>
</body>
</html>
【結果】:
★綜合應用2
將border-left-color 轉化為borderLeftColor駝峰形式
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>border-left-color轉化為borderLeftColor</title>
</head>
<body>
<script>
//border-left-color borderLeftColor//駝峰形式
function camelback(str){
//通過-這個分隔符將str拆分成數組
var arr=str.split("-"),newStr=arr[0];
//console.log(arr);//["border","left","color"]
//newStr="border";
for(var i=1,len=arr.length;i<len;i++){
var word=arr[i];
//console.log(world);
//將每一個單詞的首字母轉換為大寫,連接剩余字符
newStr+=word.charAt(0).toUpperCase()+word.substr(1);
//console.log(newStr);
//newStr=borderLeftColor
}
return newStr;
}
var camelFormat=camelback("border-left-color");
console.log(camelFormat);
</script>
</body>
</html>
end.
本筆記整理自慕課網