json
json是類似于javascript對(duì)象的一種數(shù)據(jù)格式;
json格式的數(shù)據(jù):
{"name":'tom',
"age":18}
json數(shù)據(jù)格式的屬性名稱需要用雙引號(hào)引起來(lái),用單引號(hào)或者不用引號(hào)會(huì)導(dǎo)致讀取數(shù)據(jù)錯(cuò)誤。
json的另外一個(gè)數(shù)據(jù)格式是數(shù)組;
例如:['tom',18,'programmer']??;
中括號(hào)是對(duì)象,大括號(hào)是數(shù)組;
對(duì)象和數(shù)組都是可以相互嵌套的;
info?:??信息;
ajax
ajax技術(shù)的原理是實(shí)例化;
使用此對(duì)象與后臺(tái)通信。ajax通信的過(guò)程不會(huì)影響后續(xù)javascript的執(zhí)行,從而實(shí)現(xiàn)異步;
ajax可以實(shí)現(xiàn)局部刷新,也叫做無(wú)刷新,無(wú)刷新指的是整個(gè)頁(yè)面不刷新,只是局部刷新,ajax可以自己發(fā)送http請(qǐng)求;
$.ajax使用方法
常用參數(shù):
1、url?請(qǐng)求地址
2、type?請(qǐng)求方式,默認(rèn)是'GET',常用的還有'POST'
3、dataType?設(shè)置返回的數(shù)據(jù)格式,常用的是'json'格式,也可以設(shè)置為'html'
4、data?設(shè)置發(fā)送給服務(wù)器的數(shù)據(jù)
5、success?設(shè)置請(qǐng)求成功后的回調(diào)函數(shù)
6、error?設(shè)置請(qǐng)求失敗后的回調(diào)函數(shù)
7、async?設(shè)置是否異步,默認(rèn)值是'true',表示異步;
ajax,是前端與后臺(tái)連接的地方;
表單文件中g(shù)et與post的區(qū)別?
get
*???URL?改變,在URL?里顯示?HTML?Form?參數(shù)的?name
alue?值。
*???只適合有少量參數(shù)的?HTML?Form,因?yàn)?URL?長(zhǎng)度有字符限制,不能無(wú)限長(zhǎng)。
*???涉及安全性的信息,比如用戶密碼,不能用?get,因?yàn)闀?huì)在?URL?上顯示,不安全。
post
*???URL?不改變,不在?URL?里顯示?HTML?Form?的數(shù)據(jù)。
*???Form?提交的信息沒(méi)有長(zhǎng)度限制。
*???涉及安全性的信息,如用戶密碼,應(yīng)采用?post?方式。
jsonp
ajax只能請(qǐng)求同一個(gè)域下的數(shù)據(jù)或資源,有時(shí)候需要跨域請(qǐng)求數(shù)據(jù),就需要用到j(luò)sonp技術(shù),jsonp可以跨域請(qǐng)求數(shù)據(jù),它的原理主要是利用了script標(biāo)簽可以跨域鏈接資源的特性。
頁(yè)面上定義一個(gè)函數(shù),引用一個(gè)外部js文件,外部js文件的地址可以是不同域的地址,外部js文件;
例如:aa({"name":"tom","age":18});
外部js文件調(diào)用頁(yè)面上定義的函數(shù),通過(guò)參數(shù)把數(shù)據(jù)傳進(jìn)去。
正則表達(dá)式
什么是正則表達(dá)式?
字符串匹配規(guī)則;
正則表達(dá)式的寫(xiě)法:
1.var?re=new?RegExp('規(guī)則',?'可選參數(shù)');??面向?qū)ο蟮姆椒ǎ?/p>
2.var?re=/規(guī)則/參數(shù);
規(guī)則中的字符
1普通字符匹配:
例如:/a/?匹配字符?‘a(chǎn)’,/a,b/?匹配字符?‘a(chǎn),b’
2.轉(zhuǎn)義字符匹配:
\d?匹配一個(gè)數(shù)字,即0-9
\D?匹配一個(gè)非數(shù)字,即除了0-9
\w?匹配一個(gè)單詞字符(字母、數(shù)字、下劃線)
\W?匹配任何非單詞字符。等價(jià)于[^A-Za-z0-9_]
\s?匹配一個(gè)空白符
\S?匹配一個(gè)非空白符
\b?匹配單詞邊界
\B?匹配非單詞邊界
.?匹配一個(gè)任意字符,除了換行符‘\n’和回車符‘\r’
\1?重復(fù)子項(xiàng);
正則匹配的是字符串用的;???????字符串里有一個(gè)都返回true;
任意一個(gè)或者范圍
1.[abc123]?:?匹配‘a(chǎn)bc123’中的任意一個(gè)字符;
2.[a-z0-9]?:?匹配a到z或者0到9中的任意一個(gè)字符;
限制開(kāi)頭結(jié)尾
1.^?以緊挨的元素開(kāi)頭;
2.$?以緊挨的元素結(jié)尾;
量詞:對(duì)左邊的匹配字符定義個(gè)數(shù)
1.???出現(xiàn)零次或一次(最多出現(xiàn)一次)(可以出翔0次和1次);
2.?+?出現(xiàn)一次或多次(至少出現(xiàn)一次);
3.?*?出現(xiàn)零次或多次(任意次);
4.?{n}?出現(xiàn)n次??;
5.?{n,m}?出現(xiàn)n到m次??;
6.?{n,}?至少出現(xiàn)n次???;
修飾參數(shù):
g:?global,全文搜索,默認(rèn)搜索到第一個(gè)結(jié)果接停止
i:?ingore?case,忽略大小寫(xiě),默認(rèn)大小寫(xiě)敏感
m:?multiple?lines,多行搜索(更改^?和$的含義,使它們分別在任意一行對(duì)待行首和行尾匹配,而
不僅僅在整個(gè)字符串的開(kāi)頭和結(jié)尾匹配);
常用函數(shù)
1、test??????????用法:正則.test(字符串)?匹配成功,就返回真,否則就返回假;
2、search?????用法:字符串.search(正則)?匹配成功,返回位置,否則返回-1;(相當(dāng)于indexof?索引)
3、match??????用法:?字符串.match(正則);匹配成功,就返回匹配成功的數(shù)組,否則就返回null;
4、replace?????用法:字符串.replace(正則,新的字符串)?匹配成功的字符去替換新的字符(替換函數(shù));