千鋒教育JavaScript全套視頻教程(10天學(xué)會(huì)Js,前端javascrip

???正則的概念:數(shù)據(jù)格式驗(yàn)證:前端完成
??// 正則:字符串正確的規(guī)則,
??// 在表單提交的過(guò)程中,前端往往有大量的數(shù)據(jù)需要效驗(yàn),
??// 通過(guò)正則對(duì)象可以完成數(shù)據(jù)格式的判斷,從而大大降低服務(wù)器的壓力
??// 數(shù)值驗(yàn)證:后端驗(yàn)證
一、正則對(duì)象的構(gòu)造方法
??a.構(gòu)造方法
??var reg = new RegExp("格式字符串","修飾符");
???var reg = new RegExp("a");至少包含一個(gè)"a"
???test
???功能:判斷目標(biāo)字符串是否滿足正則對(duì)象
???參數(shù):test(目標(biāo)字符串)
???返回值:布爾值
???var str = "bbbbc";
???console.log(reg.test(str));
??b.字面量
???var reg = /格式字符串/修飾符;
???var reg = /a/;
???var str = "bbabbc";
???console.log(reg.test(str));
??---------------------------------
???什么時(shí)候必須用第一種?
??var arr = ["heihei","123","haha"];
???var reg = /arr[0]/; 錯(cuò)誤
??var reg = new RegExp(arr[0]);
二、正則格式的字符串
???格式字符串:普通字符+特殊字符
???普通字符:普通的字符
???特殊字符:a.單個(gè)字符
???????b.各種括號(hào)
???????c.組合字符
??1.至少包含"a"
????var reg = /a/;
??2.至少包含連續(xù)的aaa
????reg = /aaa/;
??3.只能包含一個(gè)a
????reg = /^a$/;
??注意事項(xiàng):
????^:正則開始的字符串
????&:正則結(jié)束的字符串
????必須同時(shí)出現(xiàn)或者同時(shí)消失
??4.只能包含aaa
????reg = /^aaa$/;
??5.以b開頭?至少3個(gè)a?至多5個(gè)a
????reg = /^ba{3,5}$/;
??6.6個(gè)5
????reg = /^5{6}$/;
??7.郵編??6位數(shù)字??
????reg = /^\d{6}$/;
??8.定義一個(gè)由字母或數(shù)字或下劃線組成的用戶名??范圍在6,18之間??
????reg = /^\w{6,18}$/;
??9.定義一個(gè)由字母或數(shù)字或下劃線組成的用戶名 但是首字母不為數(shù)字?范圍在6,18之間??
????reg = /^\D\w{5,17}$/;?
?????
??10.定義一個(gè)密碼?至少6位??
????reg = /^.{6,}$/;
??11.www.baidu.com
????reg = /^www\.baidu\.com$/;
????reg = /^\\$/;
??12.3+5
????reg = /^3\+5$/;
????reg = /^\d+$/;
??13.以 13 或 15 開頭的手機(jī)號(hào)
????(值1|值2|值3...)
????reg = /^1(3|5)\d{9}$/;或者reg = /^(13|15)\d{9}$/;
?????
?????[值1值2值3...]
????reg = /^1[35]\d{9}$/;
?????
??14.指定一個(gè)區(qū)間
????reg = /^[a-f0-5]$/;
??15.除了
????[^值1值2值3...]
????reg = /^[^abc]$/;
??16.空格
????reg = /^\s$/;
??17.中文 [\u4e00-\u9fa5] 任意一個(gè)中文字符
????兩個(gè)中文
????reg = /^[\u4e00-\u9fa5]{2}$/;
??總結(jié):
??1.單個(gè)字符:
????^:正則開始
????$ :正則結(jié)束
????.:元字符,表示任意一個(gè)字符
????\: 表示轉(zhuǎn)義字符.表示
????+:表示其前面緊挨著的字符至少出現(xiàn)1次 等價(jià){1}
????*:表示其前面出現(xiàn)的字符至少出現(xiàn)過(guò)0次 等價(jià){0}
?????:表示其前面出現(xiàn)的字符至少出現(xiàn)過(guò)0次,至多1次等價(jià){0,1}
????| :表示或者 (1|3|7)
??2.組合字符:
????\d : 0-9之間的任意一個(gè)數(shù)字d只占一個(gè)位器
????\D :除了\d
????\w :數(shù)字,字母,下劃線 0-9 a-z A-Z
????\W :除了\w
????\s:空格
????\S:除了\s
??3.括號(hào):
????{m,n}:表示括號(hào)前面緊挨著的字符至少出現(xiàn)m個(gè),至多出現(xiàn)n個(gè)
????{m}:表示括號(hào)前面緊挨著的字符只能出現(xiàn)m個(gè)
????{m,}:表示括號(hào)前面緊挨著的字符至少出現(xiàn)m個(gè)
????[]:表示括號(hào)內(nèi)的任意一個(gè)字符 [wd3h7]
????[a-z]:表示任意一個(gè)小寫字母 [a-zA-Z0-9]
????[^ ]:表示非括號(hào)里的任意一個(gè)字符
????():一般與或連用,表示優(yōu)先級(jí)
????[ u4e00-\u9fa5]:任意一個(gè)中文字符
三、判斷密碼的強(qiáng)弱
??至少包含
????var regNum = /\d+/;
????var regLetter = /[a-zA-Z]+/;
????var regChar = /[!@#$]+/;
??只能包含
????var _regNum = /^\d+$/;
????var _regLetter = /^[a-zA-Z]+$/;
????var _regChar = /^[!@#$]+$/;
????var oInput = document.querySelector("input");
????var oBtn = document.querySelector("button");
????oBtn.onclick = function(){
??????if(regNum.test(oInput.value) &&?regLetter.test(oInput.value) &&?
??????regChar.test(oInput.value)){
????????console.log("強(qiáng)");
??????}else if(_regNum.test(oInput.value) || _regLetter.test(oInput.value) ||?
??????_regChar.test(oInput.value)){
????????console.log("弱");
??????}else{
????????console.log("中");
??????}
????}
四、表單驗(yàn)證:
????action:提交的服務(wù)器地址
????method:數(shù)據(jù)提交的方式
????get:安全性低,效率高,默認(rèn)不寫是get
????post:安全姓高,效率低
????onsubmit事件對(duì)應(yīng)的就是 type="submit"這個(gè)按鈕