一 Date對象
1 Date函數接收時間戳
date.getTime() date date.valueOf()//返回值 : date 的毫秒錶示。返回值和方法 Date.getTime 返回的值相等。
Date.parse() 方法可解析一個日期時間字符串,並返回 1970/1/1 午夜距離該日期時間的毫秒數。 以上輸出一串數字(1970年01月1日0點零分以來的毫秒數),該串數字可與隨機數配合生成獨特id
2 Date
1 Date對象的創建: new Date()
以下四種方法同樣可以創建 Date 對象:
var d = new Date();
var d = new Date(milliseconds);
var d = new Date(dateString);
var d = new Date(year, month, day, hours, minutes, seconds, milliseconds);
2 Date 對象屬性
constructor | 返回對創建此對象的 Date 函數的引用。 |
---|---|
prototype |
使您有能力向對象添加屬性和方法。 |
3 Date對象方法
方法 |
描述 |
---|---|
getDate() |
從 Date 對象返回一個月中的某一天 (1 ~ 31)。 |
getDay() |
從 Date 對象返回一週中的某一天 (0 ~ 6)。 |
getFullYear() |
從 Date 對象以四位數字返回年份。 |
getHours() |
返回 Date 對象的小時 (0 ~ 23)。 |
getMilliseconds() |
返回 Date 對象的毫秒(0 ~ 999)。 |
getMinutes() |
返回 Date 對象的分鐘 (0 ~ 59)。 |
getMonth() |
從 Date 對象返回月份 (0 ~ 11)。 |
getSeconds() |
返回 Date 對象的秒數 (0 ~ 59)。 |
getTime() |
返回 1970 年 1 月 1 日至今的毫秒數。 |
getTimezoneOffset() |
返回本地時間與格林威治標準時間 (GMT) 的分鐘差。 |
getUTCDate() |
根據世界時從 Date 對象返回月中的一天 (1 ~ 31)。 |
getUTCDay() |
根據世界時從 Date 對象返回週中的一天 (0 ~ 6)。 |
getUTCFullYear() |
根據世界時從 Date 對象返回四位數的年份。 |
getUTCHours() |
根據世界時返回 Date 對象的小時 (0 ~ 23)。 |
getUTCMilliseconds() | 根據世界時返回 Date 對象的毫秒(0 ~ 999)。 |
getUTCMinutes() |
根據世界時返回 Date 對象的分鐘 (0 ~ 59)。 |
getUTCMonth() |
根據世界時從 Date 對象返回月份 (0 ~ 11)。 |
getUTCSeconds() |
根據世界時返回 Date 對象的秒鐘 (0 ~ 59)。 |
getYear() |
已廢棄。 請使用 getFullYear() 方法代替。 |
parse() |
返回1970年1月1日午夜到指定日期(字符串)的毫秒數。 |
setDate() |
設置 Date 對象中月的某一天 (1 ~ 31)。 |
setFullYear() |
設置 Date 對象中的年份(四位數字)。 |
setHours() |
設置 Date 對象中的小時 (0 ~ 23)。 |
setMilliseconds() |
設置 Date 對象中的毫秒 (0 ~ 999)。 |
setMinutes() |
設置 Date 對象中的分鐘 (0 ~ 59)。 |
setMonth() |
設置 Date 對象中月份 (0 ~ 11)。 |
setSeconds() |
設置 Date 對象中的秒鐘 (0 ~ 59)。 |
setTime() |
setTime() 方法以毫秒設置 Date 對象。 |
setUTCDate() |
根據世界時設置 Date 對象中月份的一天 (1 ~ 31)。 |
setUTCFullYear() |
根據世界時設置 Date 對象中的年份(四位數字)。 |
setUTCHours() |
根據世界時設置 Date 對象中的小時 (0 ~ 23)。 |
setUTCMilliseconds() | 根據世界時設置 Date 對象中的毫秒 (0 ~ 999)。 |
setUTCMinutes() |
根據世界時設置 Date 對象中的分鐘 (0 ~ 59)。 |
setUTCMonth() |
根據世界時設置 Date 對象中的月份 (0 ~ 11)。 |
setUTCSeconds() |
setUTCSeconds() 方法用於根據世界時 (UTC) 設置指定時間的秒字段。 |
setYear() |
已廢棄。請使用 setFullYear() 方法代替。 |
toDateString() |
把 Date 對象的日期部分轉換爲字符串。 |
toGMTString() |
已廢棄。請使用 toUTCString() 方法代替。 |
toISOString() |
使用 ISO 標準返回字符串的日期格式。 |
toJSON() |
以 JSON 數據格式返回日期字符串。 |
toLocaleDateString() | 根據本地時間格式,把 Date 對象的日期部分轉換爲字符串。 |
toLocaleTimeString() | 根據本地時間格式,把 Date 對象的時間部分轉換爲字符串。 |
toLocaleString() |
據本地時間格式,把 Date 對象轉換爲字符串。 |
toString() |
把 Date 對象轉換爲字符串。 |
toTimeString() |
把 Date 對象的時間部分轉換爲字符串。 |
toUTCString() |
根據世界時,把 Date 對象轉換爲字符串。 |
UTC() |
根據世界時返回 1970 年 1 月 1 日 到指定日期的毫秒數。 |
valueOf() |
返回 Date 對象的原始值。 |
二 數組對象
push():向數組的末尾添加一個或多個元素
定義和用法
push() 方法可向數組的末尾添加一個或多個元素,並返回新的長度。
注意: 新元素將添加在數組的末尾。
注意: 此方法改變數組的長度。
提示: 在數組起始位置添加元素請使用 unshift() 方法。
數組中添加新元素:
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.push("Kiwi")
fruits 結果輸出:
Banana,Orange,Apple,Mango,Kiwi
pop():移除最後一個數組元素
定義和用法
pop() 方法用於刪除數組的最後一個元素並返回刪除的元素。
注意:此方法改變數組的長度!
提示: 移除數組第一個元素,請使用 shift() 方法。
移除最後一個數組元素
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.pop();
fruits 結果輸出:
Banana,Orange,Apple
unshift() :將新項添加到數組起始位置:
定義和用法
unshift() 方法可向數組的開頭添加一個或更多元素,並返回新的長度。
注意: 該方法將改變數組的數目。
提示: 將新項添加到數組末尾,請使用 push() 方法。
將新項添加到數組起始位置:
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.unshift("Lemon","Pineapple");
fruits 將輸出:
Lemon,Pineapple,Banana,Orange,Apple,Mango
shift():從數組中移除元素:
定義和用法
shift() 方法用於把數組的第一個元素從其中刪除,並返回第一個元素的值。
注意: 此方法改變數組的長度!
提示: 移除數組末尾的元素可以使用 pop() 方法。
從數組中移除元素:
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.shift()
fruits結果輸出:
Orange,Apple,Mango
小練習:
// 練習1: 將數組第一個元素移動到數組最後
/* var arr = ['a', 'b', 'c'];
arr.push( arr.shift() );
console.log(arr); */
// 練習2: 將數組最後一個元素移動到數組最前面
var arr = ['a', 'b', 'c'];
arr.unshift( arr.pop() );
console.log(arr);
splice()方法:添加或刪除數組中的元素:
定義和用法
splice() 方法用於添加或刪除數組中的元素。
注意:這種方法會改變原始數組。
語法
array.splice(index,howmany,item1,.....,itemX)
參數 Values
參數 |
描述 |
---|---|
index |
必需。規定從何處添加/刪除元素。 該參數是開始插入和(或)刪除的數組元素的下標,必須是數字。 |
howmany |
可選。規定應該刪除多少元素。必須是數字,但可以是 "0"。 如果未規定此參數,則刪除從 index 開始到原數組結尾的所有元素。 |
item1, ..., itemX | 可選。要添加到數組的新元素 |
返回值
Type |
描述 |
---|---|
Array | 如果從 arrayObject 中刪除了元素,則返回的是含有被刪除的元素的數組。 |
數組中添加新元素:
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.splice(2,0,"Lemon","Kiwi");
fruits 輸出結果:
Banana,Orange,Lemon,Kiwi,Apple,Mango
實例
移除數組的第三個元素,並在數組第三個位置添加新元素:
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.splice(2,1,"Lemon","Kiwi");
fruits 輸出結果:
Banana,Orange,Lemon,Kiwi,Mango
實例
從第三個位置開始刪除數組後的兩個元素:
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.splice(2,2);
fruits 輸出結果:
Banana,Orange
// 1 刪除功能:例如刪除數組中的bcd
var arr = ['a', 'b', 'c', 'd', 'e'];
/* var result = arr.splice(1, 3);
console.log(arr); //輸出: [a,e]
console.log(result); //輸出: [b,c,d] */
/* var result = arr.splice(2, 1);
console.log(arr, result); // [a,b,d,e]['c'] */
// 2 修改功能:例如將bc修改爲xyz
/* var arr = ['a', 'b', 'c', 'd', 'e'];
var result = arr.splice(1, 2, 'x', 'y', 'z');
console.log(arr, result); */
// 3 新增功能:例如,在a後添加xyz
// - 注意:參數1應當設置爲添加後第一個元素所處的索引值
// var arr = ['a', 'b', 'c', 'd', 'e'];
// var result = arr.splice(1, 0, 'x', 'y', 'z');
// console.log(arr);
// console.log(result); // []
slice方法:從已有的數組中返回選定的元素。
定義和用法
slice() 方法可從已有的數組中返回選定的元素。
slice()方法可提取字符串的某個部分,並以新的字符串返回被提取的部分。
注意: slice() 方法不會改變原始數組。
提示: 如果是負數,則該參數規定的是從字符串的尾部開始算起的位置。也就是說,-1 指字符串的最後一個字符,-2 指倒數第二個字符,以此類推。
實例
在數組中讀取元素:
var fruits = ["Banana", "Orange", "Lemon", "Apple", "Mango"];
var citrus = fruits.slice(1,3);
citrus 結果輸出:
Orange,Lemon
實例
使用負值從數組中讀取元素
var fruits = ["Banana", "Orange", "Lemon", "Apple", "Mango"];
var myBest = fruits.slice(-3,-1);
myBest 結果輸出:
Lemon,Apple
語法
array.slice(start, end)
參數值
參數 |
描述 |
---|---|
start | 可選。規定從何處開始選取。如果是負數,那麼它規定從數組尾部開始算起的位置。也就是說,-1 指最後一個元素,-2 指倒數第二個元素,以此類推。 |
end |
可選。規定從何處結束選取。該參數是數組片斷結束處的數組下標。如果沒有指定該參數,那麼切分的數組包含從 start 到數組結束的所有元素。如果這個參數是負數,那麼它規定的是從數組尾部開始算起的元素。 |
返回值
Type |
描述 |
---|---|
Array | 返回一個新的數組,包含從 start 到 end (不包括該元素)的 arrayObject 中的元素。 |
concat()方法
定義和用法
concat() 方法用於連接兩個或多個數組。
該方法不會改變現有的數組,而僅僅會返回被連接數組的一個副本。
語法
array1.concat(array2,array3,...,arrayX)
參數
參數 |
描述 |
---|---|
array2, array3, ..., arrayX | 必需。該參數可以是具體的值,也可以是數組對象。可以是任意多個。 |
返回值
Type |
描述 |
---|---|
Array 對象 | 返回一個新的數組。該數組是通過把所有 arrayX 參數添加到 arrayObject 中生成的。如果要進行 concat() 操作的參數是數組,那麼添加的是數組中的元素,而不是數組。 |
菜鳥代碼:
實例
合併三個數組的值:
var hege = ["Cecilie", "Lone"];
var stale = ["Emil", "Tobias", "Linus"];
var kai = ["Robin"];
var children = hege.concat(stale,kai);
children 輸出結果:
Cecilie,Lone,Emil,Tobias,Linus,Robin
案例代碼
<script>
/* var arr = [1, 2, 3];
arr.push('a', 'b', ['x', 'y']);
console.log(arr);
*/
// concat() 演示
/* var arr = [1, 2, 3];
var result = arr.concat('a', 'b', ['x', 'y', 'z']);
console.log(arr);
console.log(result); // [1, 2, 3, "a", "b", "x", "y", "z"] */
// 通常使用時,只會傳入數組形式的參數,用來進行數組的元素連接
var arr1 = [1, 2, 3];
var arr3 = ['a', 'b', 'c'];
var arr4 = ['x', false, true];
var result = arr1.concat(arr3, arr4, [10, 20, 30]);
console.log(result);
</script>
面試題
一道面試題:傳遞兩個參數m,n,返回長度爲m,所有元素都爲n的數組,要求不能用循環。
利用函數的遞歸和 concat() 方法可以實現,代碼如下:
function fn(m, n) {
return m ? fn(m - 1, n).concat(n) : [];
}
indexOf()方法:
定義和用法
indexOf() 方法可返回數組中某個指定的元素位置。
該方法將從頭到尾地檢索數組,看它是否含有對應的元素。開始檢索的位置在數組 start 處或數組的開頭(沒有指定 start 參數時)。如果找到一個 item,則返回 item 的第一次出現的位置。開始位置的索引爲 0。
如果在數組中沒找到指定元素則返回 -1。
提示如果你想查找字符串最後出現的位置,請使用 lastIndexOf() 方法。
語法:
array.indexOf(item,start)
參數值
參數 |
描述 |
---|---|
item |
必須。查找的元素。 |
start | 可選的整數參數。規定在數組中開始檢索的位置。它的合法取值是 0 到 stringObject.length - 1。如省略該參數,則將從字符串的首字符開始檢索。 |
返回值:
類型 |
描述 |
---|---|
Number | 查找指定字符串第一次出現的位置,如果沒找到匹配的字符串則返回 -1。 |
菜鳥代碼:
實例
查找數組中的 "Apple" 元素:
var fruits = ["Banana", "Orange", "Apple", "Mango"];
var a = fruits.indexOf("Apple");
a 結果輸出:
2
實例
查找數組中 "Apple" 的元素, 在數組的第四個位置開始檢索:
var fruits=["Banana","Orange","Apple","Mango","Banana","Orange","Apple"];
var a = fruits.indexOf("Apple",4);
a 結果輸出:
6
案例代碼
<script>
var arr = ['a', 'b', 'a', 'c', 'd', 'a', 'f', 'a', 'c', 'd', 'a', 'f', 'a', 'c', 'd', 'a', 'f', 'a', 'c', 'd', 'a', 'f'];
/* var index = arr.indexOf('a', 0);
console.log(index); // 0
// 繼續往後查找
index = arr.indexOf('a', index 1);
console.log(index); // 2
index = arr.indexOf('a', index 1);
console.log(index); // 5
index = arr.indexOf('a', index 1);
console.log(index); // 7 */
// 使用while循環簡化代碼
/* var index = arr.indexOf('a', 0);
console.log(index); // 0
// 如果後面還存在a,才需要繼續重複查找
while (arr.indexOf('a', index 1) !== -1) {
index = arr.indexOf('a', index 1);
console.log(index);
} */
// 使用do..while改進while的代碼
var index = -1; // 爲了讓do中的第一次取值爲0,湊數將index初始值設置爲-1
do {
index = arr.indexOf('a', index 1);
console.log(index);
} while (arr.indexOf('a', index 1) !== -1);
</script>
reserve()方法
定義和用法
reverse() 方法用於顛倒數組中元素的順序。
實例
顛倒數組中元素的順序:
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.reverse();
fruits 結果輸出:
Mango,Apple,Orange,Banana
sort()方法
定義和用法
sort() 方法用於對數組的元素進行排序。
排序順序可以是字母或數字,並按升序或降序。
默認排序順序爲按字母升序。
注意:當數字是按字母順序排列時"40"將排在"5"前面。
使用數字排序,你必須通過一個函數作爲參數來調用。
函數指定數字是按照升序還是降序排列。
注意: 這種方法會改變原始數組!。
返回值
Type |
描述 |
---|---|
Array | 對數組的引用。請注意,數組在原數組上進行排序,不生成副本。 |
菜鳥代碼:
實例
數組排序:
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.sort();
fruits 輸出結果:
Apple,Banana,Mango,Orange
實例
數字排序(數字和升序):
var points = [40,100,1,5,25,10];
points.sort(function(a,b){return a-b});
fruits輸出結果:
1,5,10,25,40,100
實例
數字排序(數字和降序):
var points = [40,100,1,5,25,10];
points.sort(function(a,b){return b-a});
fruits輸出結果:
100,40,25,10,5,1
案例代碼:
// var arr = [1, 4, 2, 6, 3, 12, 23, 22, 18, 9];
// 如果希望對數值數組正常排序,需要設置參數:
// - 升序參數:
// - function (a, b) { return a - b }
// - 降序參數
// - function (a, b) { return b - a }
/* arr.sort(function (a, b) {
return b - a;
});
console.log(arr); */
對sort()實現方式的分析:
<script>
// var arr = [1, 4, 2, 6, 3, 12, 23, 22, 18, 9];
// 如果希望對數值數組正常排序,需要設置參數:
// - 升序參數:
// - function (a, b) { return a - b }
// - 降序參數
// - function (a, b) { return b - a }
// 通過冒泡排序的實現分析參數的設置方式:
function mySort (arr, fn) {
for (var i = 0; i < arr.length - 1; i ) {
for (var j = 0; j < arr.length - i - 1; j ) {
/*
升序格式:
arr[j] > arr[j 1]
arr[j] - arr[j 1] > 0
降序格式:
arr[j] < arr[j 1]
arr[j 1] > arr[j]
arr[j 1] - arr[j] > 0
*/
if (fn(arr[j], arr[j 1]) > 0) {
var temp = arr[j];
arr[j] = arr[j 1];
arr[j 1] = temp;
}
}
}
}
var arr = [1, 4, 2, 6, 3, 12, 23, 22, 18, 9];
// 自帶的方法可以寫成arr.sort() 我們的mySort不是自帶的,就不能那麼寫
mySort(arr, function (a, b) {
return b - a;
});
/* mySort(arr, function (a, b) {
return b - a;
}); */
console.log(arr);
</script>
toString()
定義和用法
toString() 方法可把數組轉換爲字符串,並返回結果。
注意: 數組中的元素之間用逗號分隔。
實例
將數組轉換爲字符串:
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.toString();
fruits將輸出:
Banana,Orange,Apple,Mango
join()
定義和用法
join() 方法用於把數組中的所有元素轉換一個字符串。
元素是通過指定的分隔符進行分隔的。
語法:
array.join(separator)
參數 |
描述 |
---|---|
separator | 可選。指定要使用的分隔符。如果省略該參數,則使用逗號作爲分隔符。 |
返回值
類型 |
描述 |
---|---|
String | 返回一個字符串。該字符串是通過把 arrayObject 的每個元素轉換爲字符串,然後把這些字符串連接起來,在兩個元素之間插入 separator 字符串而生成的。 |
菜鳥代碼
實例
把數組中的所有元素轉換爲一個字符串:
var fruits = ["Banana", "Orange", "Apple", "Mango"];
var energy = fruits.join();
energy輸出結果:
Banana,Orange,Apple,Mango
實例
使用不同的分隔符:
var fruits = ["Banana", "Orange", "Apple", "Mango"];
var energy = fruits.join(" and ");
energy 結果輸出:
Banana and Orange and Apple and Mango
案例代碼
// join()
// - 參數:連接符,默認爲逗號,連接
// - 返回值:連接後的字符串
var arr = [1, 2, 3];
console.log( arr.join() ); // '1,2,3'
console.log( arr.join('-') ); // '1-2-3'
console.log( arr.join('abc') ); // '1abc2abc3'
console.log( arr.join('') ); // '123'
三 字符串的操作方法
charAt()
定義和用法
charAt() 方法可返回指定位置的字符。
第一個字符位置爲 0, 第二個字符位置爲 1,以此類推.
菜鳥代碼
實例
返回字符串中的第三個字符:
var str = "HELLO WORLD";
var n = str.charAt(2)
n輸出結果:
L
實例
返回字符串中的最後一個字符:
var str = "HELLO WORLD";
var n = str.charAt(str.length-1);
n 返回值:
D
案例代碼:
<script>
// 字符串也可以根據索引操作
// 方式1: []操作方式
var str = 'abcdefg';
// console.log(str[1]); // 'b'
// console.log(str[4]); // 'e'
/* str[0] = 'z';
console.log(str); */// 'abcdefg' 無法修改,體現了字符串的不可變性
// 遍歷字符串
/* for (var i = 0; i < str.length; i ) {
console.log(str[i]);
} */
// 方式2:字符串.charAt(索引值)
// console.log( str.charAt(2) ); // 'c'
for (var i = 0; i < str.length; i ) {
console.log(str.charAt(i));
}
</script>
slice()
定義和用法
slice(start, end) 方法可提取字符串的某個部分,並以新的字符串返回被提取的部分。
使用 start(包含) 和 end(不包含) 參數來指定字符串提取的部分。
字符串中第一個字符位置爲 0, 第二個字符位置爲 1, 以此類推。
提示: 如果是負數,則該參數規定的是從字符串的尾部開始算起的位置。也就是說,-1 指字符串的最後一個字符,-2 指倒數第二個字符,以此類推。
用法與數組的slice()方法相似
// 1 slice()
/* var str = 'abcdefg';
console.log(str.slice(1, 4));
// console.log(str.slice());
console.log(str); */
實例
提取所有字符串:
var str="Hello world!";
var n=str.slice(0);
以上實例輸出結果:
Hello world!
實例
從字符串的第3個位置提取字符串片段:
var str="Hello world!";
var n=str.slice(3);
以上實例輸出結果:
lo world!
實例
從字符串的第3個位置到第8個位置直接的字符串片段:
var str="Hello world!";
var n=str.slice(3,8);
以上實例輸出結果:
lo wo
實例
只提取第1個字符:
var str="Hello world!";
var n=str.slice(0,1);
以上實例輸出結果:
H
實例
提取最後一個字符:
var str="Hello world!";
var n=str.slice(-1);
以上實例輸出結果:
!
substring()
與slice()作用較爲相似,,但不包括結束處的字符。類似數學上的[ ) 這樣的區間
定義和用法
substring() 方法用於提取字符串中介於兩個指定下標之間的字符。
substring() 方法返回的子串包括 開始 處的字符,但不包括 結束 處的字符。
語法:
string.substring(from, to)
參數 | 描述 |
---|---|
from | 必需。一個非負的整數,規定要提取的子串的第一個字符在 string Object 中的位置。 |
to |
可選。一個非負的整數,比要提取的子串的最後一個字符在 string Object 中的位置多 1。 如果省略該參數,那麼返回的子串會一直到字符串的結尾。 |
// 2 substring() 使用方式與前面的slice一樣
/* var str = 'abcdefg';
console.log(str.substring(1, 4));
console.log(str.substring());
console.log(str); */
substr()
定義和用法
substr() 方法可在字符串中抽取從 開始 下標開始的指定數目的字符。
提示: substr() 的參數指定的是子串的開始位置和長度,因此它可以替代 substring() 和 slice() 來使用。
注意: substr() 方法不會改變源字符串。
語法
string.substr(start,length)
參數 |
描述 |
---|---|
start |
必需。要抽取的子串的起始下標。必須是數值。如果是負數,那麼該參數聲明從字符串的尾部開始算起的位置。也就是說,-1 指字符串中最後一個字符,-2 指倒數第二個字符,以此類推。 |
length | 可選。子串中的字符數。必須是數值。如果省略了該參數,那麼返回從 stringObject 的開始位置到結尾的字串。 |
返回值
類型 |
描述 |
---|---|
String | 返回一串包含文本提取部分的新字符串 |
菜鳥代碼
實例
抽取指定數目的字符:
var str="Hello world!";
var n=str.substr(2,3)
n 輸出結果:
llo
實例
在本例中,我們將使用 substr() 從字符串第二個位置中提取一些字符:
var str="Hello world!";
var n=str.substr(2)
n 輸出結果:
llo world!
提一筆
slice()和substring()方法 括號裏的參數都是(start,end),即開始時的數組下標到結束時的數組下標,而substr()方法 括號裏的參數是(start,length),即開始目標的下標和截取字符長度(截取幾個字符寫多少),所以相對愛建substr表較好用
indexOf()
定義和用法
indexOf() 方法可返回某個指定的字符串值在字符串中首次出現的位置。
如果沒有找到匹配的字符串則返回 -1。
注意: indexOf() 方法區分大小寫。
提示: 同樣你可以查看類似方法 lastIndexOf() 。
語法:
string.indexOf(searchvalue,start)
參數值
參數 |
描述 |
---|---|
searchvalue | 必需。規定需檢索的字符串值。 |
start |
可選的整數參數。規定在字符串中開始檢索的位置。它的合法取值是 0 到 string Object.length - 1。如省略該參數,則將從字符串的首字符開始檢索。 |
返回值:
類型 |
描述 |
---|---|
Number | 查找指定字符串第一次出現的位置,如果沒找到匹配的字符串則返回 -1。 |
菜鳥代碼:
實例
查找字符串 "welcome":
var str="Hello world, welcome to the universe.";
var n=str.indexOf("welcome");
n 輸出結果:
13
實例
在字符串查找字符 "e" 第一次出現的位置:
var str="Hello world, welcome to the universe.";
var n=str.indexOf("e");
n 輸出結果:
1
實例
在字符串第五個位置開始查找字符 "e" 第一次出現的位置:
var str="Hello world, welcome to the universe.";
var n=str.indexOf("e",5);
n 輸出結果:
14
案例代碼
<script>
// var str = 'ab123c321abc213abc123dwabda';
/* console.log( str.indexOf('a') ); // 0
console.log( str.indexOf('a', 1) ); // 9
console.log( str.indexOf('a', 10) ); // 15
*/
// 與數組一樣,可以通過while和do..while循環改進
// 注意點:
// 1 檢索字符串中的多個字符組成部分, 返回的是首字符的索引
/* var str = 'abc123c321abc213abc123dwada';
console.log(str.indexOf('abc')); // 0
console.log(str.indexOf('abc', 1)); // 10 */
// 2 如果使用indexOf檢索空字符串'',一定返回0
var str = 'abcdefg';
console.log(str.indexOf('')); // 0
</script>
toUpperCase()
/* var str = 'abcdefgABC123';
console.log(str.toUpperCase());
console.log(str); */
toLowerCase()
/* var str = 'ABECDEabc123';
console.log(str.toLowerCase());
console.log(str); */
replace()
定義和用法
replace() 方法用於在字符串中用一些字符替換另一些字符,或替換一個與正則表達式匹配的子串。
該方法不會改變原始字符串。
語法
string.replace(searchvalue,newvalue)
參數
參數 |
描述 |
---|---|
searchvalue | 必須。規定子字符串或要替換的模式的 RegExp 對象。 請注意,如果該值是一個字符串,則將它作爲要檢索的直接量文本模式,而不是首先被轉換爲 RegExp 對象。 |
newvalue |
必需。一個字符串值。規定了替換文本或生成替換文本的函數。 |
返回值
String | 一個新的字符串,是用 replacement 替換了 regexp 的第一次匹配或所有匹配之後得到的。 |
---|---|
實例
在本例中,我們將執行一次替換,當第一個 "Microsoft" 被找到,它就被替換爲 "Runoob":
var str="Visit Microsoft! Visit Microsoft!";
var n=str.replace("Microsoft","Runoob");
n 輸出結果:
Visit Runoob!Visit Microsoft!
實例
執行一個全局替換:
var str="Mr Blue has a blue house and a blue car";
var n=str.replace(/blue/g,"red");
n 輸出結果:
Mr Blue has a red house and a red car
實例
執行一個全局替換, 忽略大小寫:
var str="Mr Blue has a blue house and a blue car";
var n=str.replace(/blue/gi, "red");
n 輸出結果:
Mr red has a red house and a red car
/*
因爲replace替換方法一次只能替換一次,所以要在文本中進行所有替換就需要循環了(看案例代碼),但循環也是比較麻煩的,所以我們可以用正則表達式來進行全局替換
這裏補充一下正則表達式replace替換
/表達式/[修飾符]
g:全局匹配
i:忽略大小寫
gi:全局 忽略
*/
//這個可以應用於屏蔽敏感詞
案例代碼
<script>
var str = 'a-b-c-d';
// 例如希望將str中的-換成|
// - 注意只能替換從左往右找到的第一段內容
/* console.log(str.replace('-', '|'));
console.log(str); */
// console.log(str.replace('-', '|'));
// console.log(str.replace('-', '|').replace('-', '|').replace('-', '|'));
// 通過while循環替換字符串中的所有-
while (str.indexOf('-') !== -1) {
// 進行替換操作即可
str = str.replace('-', '|');
}
console.log(str);
</script>
split()
定義和用法
split() 方法用於把一個字符串分割成字符串數組。
提示: 如果把空字符串 ("") 用作 separator,那麼 stringObject 中的每個字符之間都會被分割。
注意: split() 方法不改變原始字符串。
語法
string.split(separator,limit)
參數 |
描述 |
---|---|
separator | 可選。字符串或正則表達式,從該參數指定的地方分割 string Object。 |
limit |
可選。該參數可指定返回的數組的最大長度。如果設置了該參數,返回的子串不會多於這個參數指定的數組。如果沒有設置該參數,整個字符串都會被分割,不考慮它的長度。 |
返回值
類型 |
描述 |
---|---|
Array | 一個字符串數組。該數組是通過在 separator 指定的邊界處將字符串 string Object 分割成子串創建的。返回的數組中的字串不包括 separator 自身。 |
菜鳥代碼
實例
省略分割參數:
var str="How are you doing today?";
var n=str.split();
n 輸出數組值得結果:
How are you doing today?
實例
分割每個字符,包括空格:
var str="How are you doing today?";
var n=str.split("");
n 輸出數組值得結果:
H,o,w, ,a,r,e, ,y,o,u, ,d,o,i,n,g, ,t,o,d,a,y,?
實例
使用 limit 參數:
var str="How are you doing today?";
var n=str.split(" ",3);
n 將輸出3個數組的值:
How,are,you
實例
使用一個字符作爲分隔符:
var str="How are you doing today?";
var n=str.split("o");
n 輸出數組值得結果:
H,w are y,u d,ing t,day?
案例代碼
<script>
// var str = 'a-b-c-d-e';
// console.log(str.split('-'));
// console.log(str.split()); // 不傳參數沒有意義
// console.log(str.split('')); // 傳入空字符串,將每個字符分隔
// 與數組的join方法結合使用:
// 1 替換字符串中的部分內容
var str = 'a-b-c-d-e'; // 將字符串中的-替換爲|
console.log(str.split('-'));
console.log(str.split('-').join('|'));
// 2 刪除字符串中的部分內容
/* var str = 'a-b-c-d-e'; // 將字符串中的-刪除
console.log(str.split('-').join('')); */
</script>
trim()
定義和用法
trim() 方法用於刪除字符串的頭尾空格。
trim() 方法不會改變原始字符串。
語法
string.trim()
返回值
類型 |
描述 |
---|---|
String | 返回移除頭尾空格的字符串。 |
菜鳥代碼
實例
去除字符串的頭尾空格:
var str = " Runoob ";
alert(str.trim());
輸出結果:
Runoob
案例代碼
var str = ' jack ';
console.log(str.trim());
console.log(str);