正則表達式
1、什么是正則表達式:
能讓計算機讀懂的字符串匹配規(guī)則。
2、正則表達式的寫法:
var re=new RegExp('規(guī)則', '可選參數(shù)');
var re=/規(guī)則/參數(shù);
3、規(guī)則中的字符
1)普通字符匹配:
如:/a/? 匹配字符 ‘a(chǎn)’,/a,b/? 匹配字符 ‘a(chǎn),b’
2)轉義字符匹配:
\d? 匹配一個數(shù)字,即0-9
\D? 匹配一個非數(shù)字,即除了0-9
\w? 匹配一個單詞字符(字母、數(shù)字、下劃線)
\W? 匹配任何非單詞字符。等價于[^A-Za-z0-9_]
\s? 匹配一個空白符
\S? 匹配一個非空白符
\b? 匹配單詞邊界
\B? 匹配非單詞邊界
.? ? 匹配一個任意字符,除了換行符‘\n’和回車符‘\r’
\1? 重復子項
4、量詞:對左邊的匹配字符定義個數(shù)
? 出現(xiàn)零次或一次(最多出現(xiàn)一次),或指明一個非貪婪限定符
+ 出現(xiàn)一次或多次(至少出現(xiàn)一次)
* 出現(xiàn)零次或多次(任意次)
{n} 出現(xiàn)n次
{n,m} 出現(xiàn)n到m次
{n,} 至少出現(xiàn)n次
5、任意一個或者范圍
[abc123] : 匹配‘a(chǎn)bc123’中的任意一個字符
[a-z0-9] : 匹配a到z或者0到9中的任意一個字符
6、限制開頭結尾
^? 以緊挨的元素開頭
$? 以緊挨的元素結尾
7、修飾參數(shù):
g: global,全文搜索,默認搜索到第一個結果接停止
i: ingore case,忽略大小寫,默認大小寫敏感
m: multiple lines,多行搜索(更改^ 和$的含義,使它們分別在任意一行對待行首和行尾匹配,而不僅僅在整個字符串的開頭和結尾匹配)
8、常用函數(shù)
1、test
用法:正則.test(字符串)? 匹配成功,就返回真,否則就返回假
2、search
用法:字符串.search(正則)? 匹配成功,返回位置,否則返回-1
3、match
用法: 字符串.match(正則);匹配成功,就返回匹配成功的數(shù)組,否則就返回null
4、replace
用法:字符串.replace(正則,新的字符串) 匹配成功的字符去替換新的字符
正則默認規(guī)則
匹配成功就結束,不會繼續(xù)匹配,區(qū)分大小寫
*、+限定符都是貪婪的,因為它們會盡可能多的匹配文字,只有在它們的后面加上一個?就可以實現(xiàn)非貪婪或最小匹配。
例如,您可能搜索 HTML 文檔,以查找括在 H1 標記內(nèi)的章節(jié)標題。該文本在您的文檔中如下:
<H1>Chapter 1 - 介紹正則表達式</H1>
貪婪:下面的表達式匹配從開始小于號 (<) 到關閉 H1 標記的大于號 (>) 之間的所有內(nèi)容。
/<.*>/
非貪婪:如果您只需要匹配開始和結束 H1 標簽,下面的非貪婪表達式只匹配
。
/<.*?>/
如果只想匹配開始的 H1 標簽,表達式則是:
/<\w+?>/
通過在 *、+ 或 ? 限定符之后放置 ?,該表達式從"貪心"表達式轉換為"非貪心"表達式或者最小匹配。
本地存儲
本地存儲分為cookie,以及新增的localStorage和sessionStorage
1、cookie 存儲在本地,容量最大4k,在同源的http請求時攜帶傳遞,損耗帶寬,可設置訪問路徑,只有此路徑及此路徑的子路徑才能訪問此cookie,在設置的過期時間之前有效。
jquery 設置cookie
$.cookie('mycookie','123',{expires:7,path:'/'});
jquery 獲取cookie
$.cookie('mycookie');
2、localStorage 存儲在本地,容量為5M或者更大,不會在請求時候攜帶傳遞,在所有同源窗口中共享,數(shù)據(jù)一直有效,除非人為刪除,可作為長期數(shù)據(jù)。
//設置:
localStorage.setItem("dat", "456");
localStorage.dat = '456';
//獲?。?/p>
localStorage.getItem("dat");
localStorage.dat
//刪除
localStorage.removeItem("dat");
3、sessionStorage 存儲在本地,容量為5M或者更大,不會在請求時候攜帶傳遞,在同源的當前窗口關閉前有效。
localStorage 和 sessionStorage 合稱為Web Storage , Web Storage支持事件通知機制,可以將數(shù)據(jù)更新的通知監(jiān)聽者,Web Storage的api接口使用更方便。
iPhone的無痕瀏覽不支持Web Storage,只能用cookie。