Javascript ECMA-3 (數組,Date,正則)

1. 數組

1.1 建立數組

//1、自變量建立數組
// 1-經過字面量建立一個空數組
var arr1 = [];
console.log(arr1)
console.log(typeof arr1);   // object

// 2-經過字面量建立一個帶有元素數組
var arr2 = [1, 2, 'abc', null, true];
console.log(arr2);

// 2、經過Array類型建立數組
// 1-建立空數組
var arr3 = new Array();
console.log(arr3);

// 2-建立一個最初能夠有五個元素的數組,數組的容量爲5
var arr4 = new Array(5);
console.log(arr4)

//3-建立一個帶有四個元素的數組
var arr5 = new Array(1,2,'a','y');
console.log(arr5);

1.2 數組元素的訪問及修改

// 建立一個數組
var arr1 = [1, 2, 3, 4, 5, 6, 7, 8, 9];

// 1-數組下標訪問
// 2 數字的length屬性
// 經過lenth屬性增長元素個數
arr1.length = 13;
console.log(arr1);
// 減小
arr1.length = 6;
console.log(arr1);

//3 經過索引增長數據 若是索引不連續 就會出現空的
arr1[6] = 7;
console.log(arr1);

//4-刪除數據delete
// 使用delete刪除不會改變數組的長度 刪除的元素用undefined補全
var arr3 = [1, 2, 3, 4, 5]
delete arr3[2];
console.log(arr3);
console.log(arr3[2]);  // undefined

1.3 數組的方法

var arr1 = [1, 2, 3, 4];
// push 向數組末尾添加元素
// 能夠同時添加一個或多個元素
arr1.push(6);
console.log(arr1);
arr1.push(7,8,9);
console.log(arr1);

// unshift 向數組開頭添加元素 
// 能夠同時添加一個或多個元素


// 刪除元素 pop() 移除最後一個元素
arr1.pop()
console.log(arr1);

// 移除第一個元素
arr1.shift();
console.log(arr1);

// 反轉數組
var arr2 = [1, 2, 3];
arr2.reverse();
console.log(arr2);

// join(str)
var arr3 = [1, 2, 3];
var str3 = arr3.join('*');
console.log(str3);


// indexOf()
var arr4 = [1, 2, 3, 4, 5, 3];
console.log(arr4.indexOf(3));  //返回3元素 第一次出現的下標
// lastIndexof

//  slice(start, end):截取數組
// 返回一個新數組
var arr5 = [1, 2, 3, 4, 5, 6, 7, 8, 9];
var arr6 = arr5.slice(2);  // 下標2到末尾
console.log(arr6);
var arr7 = arr5.slice(2,6); // 不包含 下標6
console.log(arr7);


// splice(index, count, [item1, item2,...])
// splice能夠進行增長修改或刪除元素的操做
// index:下標  count :元素個數 
// [item1 ..] 新元素
// splice直接操做原數組,對原數組有影響

// 刪除:只寫index 與count
// 返回:一個刪除元素的數組
var arr8 = [1, 2, 3, 4, 5, 6, 7];
var arr9 = arr8.splice(2,4);  // 下標2開始刪除4個元素  arr8=[1, 2, 7]
console.log(arr9);   // arr9 = [3, 4, 5, 6]
console.log(arr8);

// 添加
// 若是執行添加元素的操做,count的值爲0
var arr10 = [1, 2, 3, 4]
var arr11 = arr10.splice(2,0, 100,200,300);
console.log(arr11); // [] 沒刪除
console.log(arr10); // [1,2,100,200,300,3,4]


// 替換
var arr12 = [1,2,3,4];
var arr13 = arr12.splice(2,2,100,200);
console.log(arr13);  // [3, 4]
console.log(arr12);  // [1,2,100,200]

// sort:排序 按照ASCII 排序
var arr14 = [3, 17, 19, 2, 0, 1];
arr14.sort();
console.log(arr14);

// 參數傳入排序
function sortNumber(a,b){
    return a - b;
}
arr14.sort(sortNumber);
console.log(arr14);

// 檢測數組的方法
var arr15 = [1, 2, 3, 4];
console.log(arr15 instanceof Array);  // true
console.log(arr15.constructor === Array);  // true

2. Date的方法

2.1 建立Date

// 建立
// 一、Date() 函數直接建立時間 返回當前時間
var date1 = Date();
console.log(date1); //中國標準時間
console.log(typeof date1); //string

//二、Date對象建立
// 2.1 不帶參數
var date2 = new Date(); // 好處是能夠設置時間
console.log(date2);  // object


// 2.二、構造方法傳入參數
// 傳入格式
// 2018-5-10 12:12:12
// 2018-5-10
// 2018-05-10 12:12:12
// 2018-05-10
// 2015/5/10 12:12:12
//2018/05/10 12:12:12

var date3 = new Date('2018-5-10 12:12:12');
console.log(date3);
var date4 = new Date('2018-05-10 12:12:12');
console.log(date5);
var date5 = new Date('2018/05/10 12:12:12');
console.log(date6);


var date6 = new Date('2018-05-09'); // 用 / 也能夠
console.log(date6); // Wed May 09 2018 08:00:00 GMT+0800 (中國標準時間)

// 從00:00:00開始 與上面差8小時  而 / 加0不加0是沒有區別的
var date7 = new Date('2018-5-9');
console.log(date7); // "Wed May 09 2018 00:00:00 GMT+0800 (中國標準時間)"

// 2.3 傳入參數: 格式(年月日時分秒毫秒) 會進位
var date8 = new Date(2015, 5, 1, 12, 32, 25); //月從0開始數 5表明6月!!!
console.log(date8);


// 2.4 傳入一個參數:格式(毫秒)
var date9 = new Date(2000)
console.log(date9)

2.2 Date的方法

var date1 = new Date();
console.log(date1.getFullYear());
console.log(date1.getMonth());
console.log(date1.getDate());
console.log(date1.getDay());  //星期
console.log(date1.getHours());
console.log(date1.getMinutes());
console.log(date1.getSeconds());
console.log(date1.getMilliseconds());
// 距離1970-01-01的毫秒數
console.log(date1.getTime());

// 設置年份 ....星期通常不用設置
date1.setFullYear(2015);
// date.setDate();
console.log(date1);

// 裝換成字符串 包含年月日分時秒
console.log(date1.toLocaleString());
// 包含年月日
console.log(date1.toLocaleDateString());
// 包含分時秒
console.log(date1.toLocaleTimeString())

// 返回該日期距離1970年 1月1 日 0點的毫秒數
console.log(Date.parse('2016-10-10'));

// 日期的運算
var d6 = new Date();
var d7 = new Date(2016, 10, 11);
console.log(d6-d7);  // 毫秒數

3. 正則表達式

3.1 建立正則表達式

// 建立正則表達式
// 一、對象方法建立
// new RegExp('正則表達式','模式');
// g:全局查找 
// i:不區分大小寫
var r1 = new RegExp('nice');
var r2 = new RegExp('nice','g')
var r3 = new RegExp('nice','i')
var r4 = new RegExp('nice','gi')

// 二、字面量建立
var r5 = /nice/;
var r6 = /nice/gi;

// 
var r7 = /[a-z]/;

3.2 正則的方法

var str1 = 'today is very good good Good'
        
var r1 = /good/gi;
// 一、test():查找字符串中是否有符合要求的字符串
// 返回boolean
var result = r1.test(str1);
console.log(result) // true

//二、exce():查找字符串中是否有符合要求的字符串
// 返回值類型:數組或null
// 返回數組 表明能夠找到
// 返回null 表明查找結束或沒有找打

//當第一次執行exec時,從字符串開頭開始查找,若是找到,返回匹配到的
//字符串和下標,當再一次執行時候,繼續向下查找,返回匹配到下一個字符串
// 若是返回null 表明找不到或查找結束,而後下次執行從頭查找

// exec:會記錄已經查找過的下標
// 當text與exec同時使用,test檢驗字符串時,若是可以符合要求
// 會記錄找到的下標。
var resu1 = r1.exec(str1);
console.log(resu1);   // good  index 19 第二個good 因爲test找了第一個good 
var resu2 = r1.exec(str1);
console.log(resu2); // Good index 24
var resu3 = r1.exec(str1);
console.log(resu3); // null
var resu4 = r1.exec(str1); 
console.log(resu4); // good index 14


// 三、compile():修改正則表達式
r1.compile('nice');  /* r1 = /nice/  */
console.log(r1)  //  /nice/

3.3 字符串中應用正則

// 字符串切割
str1='a b c   d  f'
console.log(str1.split(/ +/))

// 字符串替換
var str2 = 'nice good nice good'
console.log(str2.replace('nice', 'bad')) // 替換一次
console.log(str2.replace(/nice/g, 'bad'));

// 字符串查找
var str3 = 'nice good nice good nice';
console.log(str3.search(/Good/i)); //返回一次查到的下標

3.4 正則的使用

// 點擊按鈕後 執行func函數
function func () {
    //獲取輸入框
    var i1 = document.getElementById("in1");  // id爲in1的input輸入框
    //獲取文字
    var str1 = i1.value;
    IsString(str1)
    
}

function IsString (str) {
    if(str.length!=0){
        reg = /^[a-zA-Z0-9_]+$/;
        if(!reg.test(str)){
            alert('您輸入的字符串格式不正確')
        }else{
            alert('正確')
        }
    }else{
        alert('您輸入的內容爲空')
    }
}

Javascript BOM簡介正則表達式

相關文章
相關標籤/搜索