字符串小知識

  最近一段時間比較急躁,花了大量的時間在看書和看視頻上,本想可以快速的瞭解JS中的有關知識並擴展本身的認識, 少有時間來這裏整理和記錄了,後來發現知識點看了就忘,仍是得多多練習才能把知識內化掉。正則表達式

1、字符串及有關知識數組

一、字符串和數組相關性比較大,先說說數組吧。函數

(1)數組的命名方式有多種,以下:編碼

var arr=new Arrray();視頻

var arr=new Array(3);對象

var arr=new Array('3');字符串

var arr=[ ];回調函數

var arr=[1,2,3];string

注意第二個和第三個的區別。it

(2)toLocalString(),toString(),valueOf()

全部對象都有以上三種方法,看如下案例區別(來源高程P89):

alert(arr.toString()); (toString()返回的是一個用逗號拼接的字符串)

alert(arr.valueOf);(valueOf返回的仍是數組)

alert(arr); (因alert()要接受字符串參數,後臺會默認調用toString()方法)

(3)數組中經常使用的一些方法:

arr.join('-'),用-將arr的各項連成一條字符串,若是直接寫join()則會默認以逗號鏈接arr的各項,感受和toString()方法同樣;

arr.push(value),將value添加到arr的末尾,value可多個,用逗號隔開,其返回值爲添加value後的arr;

arr.unshift(value)是將value添加到arr的第一個位置,用法和push同樣;

arr.pop(),將arr的最後一項值刪除,返回值爲該刪除項;

arr.shift(),用法和pop()同樣,可是是將arr的首項刪除;

arr.reverse(),可將arr中的各項順序顛倒,返回值爲顛倒後的arr;

arr.sort(),默認狀況下,該方法按升序排列數組項,爲實現排列,該方法回調用每一個數組項的toString()轉型方法,而後比較獲得字符串,即便數組中的每項都是數值,sort()方法比較的也是字符串,見P92,可是sort()可接收一個比較函數,函數寫在括號內;

arr1.concat(arr2),將arr2添加到arr1後面組成一個新的數組,它的返回值就是這個新的數組;

arr.slice(1,4),截取數組,其返回值爲起始到結束位置之間的項,但不包括最後一項,負數的話加上總長度再計量;

arr.splice(起始位置,刪除的項,要插入的任意數量的項),可實現刪除、插入和替換,其返回值爲刪除的項;

arr.indexOf(要查找的項,查找起點位置)和arr.lastIndexOf(要查找的項,查找起點位置),一個是從前日後查找,一個是從後往前查找,返回的是項的位置,查找不到則爲-1;

arr.reduce(函數,初始值),arr.reduceRight(函數,初始值);

(4)字符串的一些方法:

string.charAt(字符位置),返回該位置下的字符;

string.charCodeAt(字符位置),返回該位置下字符的字符編碼;

string.concat(),和數組用法同樣;

string.split(''),以split傳參的字符來分割字符串爲數組,參數爲必填的,若是不填則仍是爲string;

slice(),substr(),substring()用法基本上和數組中的slice()同樣,它們的區別體如今參數爲負數的時候;

indexOf()和lastIndexOf()和數組中的用法同樣;

string.toLowerCase(),string.toUpperCase(),轉換字符串的大小寫,返回值爲轉換後的字符串

(5)正則表達式

正則的建立方式:

var re=/a/;或者var re=new RegExp('a');

正則中常應用的幾種方法以下(直接寫寫法):

/re/.test(string);判斷string中是否有正則表達式,若是有則返回true,若是沒有則返回false;

string.search(re);以正則表達式去匹配字符串,若是匹配成功,則返回匹配成功的位置(以首字母位置肯定),若是匹配失敗則返回-1;

string.match(re);以正則表達式去匹配字符串,若是匹配成功,則返回匹配成功的數組,可能有多個;

string.replace(re,新字符串/回調函數);以正則表達式去匹配字符串,若是匹配成功,則匹配成功的項替換成新的字符串;

正則默認條件下是區分大小寫和一旦匹配成功就會結束匹配的兩條原則,若想更改默認條件則應以下:

var re=/a/i 或 var re=new RegExp('a','i'),實現不區分大小寫;

var re=/a/g 或 如上將i改成g便可,實現全局匹配;

正則中[ ]括號中的總體表明一個字符(這個要特別注意),[^a] 表明非a, [a-z]表明a-z的任一個字符, [abc]表明abc中任一個;

正則中的轉義字符:

\s 表明空格,\d表明數字, \w表明字符(字母、數字、下劃線)

\S表明非空格, \D表明非數字, \W表明非字符;

正則中的量詞(出現的次數):

{n,m}表明至少出現n次最多出現m次,{n,}表明至少出現n次,*表明出現任意次即{0,},?表明0次或1次即{0,1},+表明出現1次或任意次{1,},{n}表明出現正好n次;

^不在[ ]裏面時表示開始,$表示結束;

正則中的一個難點是replace中的回調函數理解,可多看視頻;

相關文章
相關標籤/搜索