一、字符串
1.字符串的特點:
同數(shù)組一樣移斩,字符串也有下標(biāo)和長度這兩個屬性肚医,并且字符串遍歷也用for
但不同的是,獲取字符串中制定位置的字符用
str.charAt(i) ??//str變量名向瓷,i表示字符串中的下標(biāo)
例:
??????????????????????????????var str='no zuo no die';
console.log(str.length);//獲取字符串的長度
//遍歷字符串
?? ??for(var i=0;i
?? //獲取字符串中的元素
?? ???console.log(str.charAt(i));
?? //獲取指定位置字符的unicode號
?? ??console.log(str.charCodeAt(i));
?? ??}
2.字符串中的API:所有字符串中的API都無權(quán)修改原字符串肠套,必須返回新字符串
1)toUpperCase();轉(zhuǎn)大寫 ???//案例見demo02 ?demo03
2) toLowerCase();轉(zhuǎn)小寫 ???//案例見demo02 ?demo03
3) slice(starti,endi+1);截取 ?//案例見demo04
4)concat(); 拼接 ????????????//案例見demo05
5) substring(starti,endi+1);截取 用法同slice ?只是不支持負(fù)數(shù)參數(shù)
6) substr(starti,n);截取從starti開始的n個字符 ?//案例見demo07
* 7) indexOf('關(guān)鍵詞',starti);檢索一個固定關(guān)鍵詞出現(xiàn)的位置 ?
從starti開始,查找下一個關(guān)鍵詞出現(xiàn)的位置
如果找不到猖任,返回-1
如果不寫starti,默認(rèn)從0開始找
案例見demo08
* 8) lastIndexOf('關(guān)鍵詞',starti);檢索上一個固定關(guān)鍵詞出現(xiàn)的位置
從str中fromi位置開始查找前一個"關(guān)鍵詞"出現(xiàn)的位置
如果找不到你稚,返回-1
簡寫:省略fromi, 表示從末尾開始找
何時:只要查找最后一個xxxx
二、正則表達式(Regular Expression):
1.定義: ?規(guī)定字符串中出現(xiàn)規(guī)律的規(guī)則.用來檢某個字符串是否符合規(guī)則或檢測字符串
中是否包含符合規(guī)定的子字符串
2.如何聲明一個正則表達式
????????????????????var reg=/ /;
var reg=new RegExp(/正則表達式/);
驗證是否正確用reg.test(str); ?//reg代表正則表達式,str代表字符串
語法:
1.最簡單的正則就是字符集原文 案例見demo10
2.字符集:規(guī)定一位字符可用的備選列表 [備選字符列表] ??案例見demo10
3.如果字符列表中部分字符連續(xù)就可以用-省略
一位大寫字母:[A-Z]
一位小寫字母:[a-z]
一位字母:[A-Za-z]
一位數(shù)字:[0-9]
4.除了[^xxx]表示除了xxx都行 [^]表示除了
5.預(yù)定義字符集:對部分常用字符集的簡化 ?案例見demo11
一位數(shù)字:\d===>[0-9]
一位字母刁赖、數(shù)字搁痛、下劃線\w===>[A-Za-z0-9_字符 ?????????????????????????
一位空字符(空格、換行 tab):\s
.匹配除回車和換行以外的所有字符
6.量詞:專門規(guī)定一個字符出現(xiàn)次數(shù)的規(guī)則
有明確數(shù)量限制:
{m,n}至少出現(xiàn)m次宇弛,最多出現(xiàn)n次
{m,}至少出現(xiàn)m次鸡典,多了不限
{m}必須出現(xiàn)m次 ?
沒有明確數(shù)量限制:
?可有可無,最多一次
*可有可無枪芒,多了不限
+至少一次彻况,多了不限
練習(xí):
1.身份證號的正則
前17位為數(shù)字,最后一位可以為數(shù)字或x或X
???????????????????????????????/^\d{17}[xX]$/
7.分組和選擇
分組:將多個字符集用()(圓括號)包裹為一組
選擇:其實就是程序中的或者 |
規(guī)則1|規(guī)則2 ?只要滿足其一即可
手機號:
+86或0086? 可有可無舅踪,最多一次
空字符可有可無纽甘,多了不限
?????1
在3,4,5,7,8,9之中挑一個
9位數(shù)字
????^(\+86|0086)?\s*1[345789]\d{9}$