首先就正則兩個字解釋:顧名思義,正則可以理解為正確的規(guī)則.
先來復習一遍js中對字符串的操作
search()尋找字符串中某字符第一次出現(xiàn)的位置(下標),若找不到返回-1.
substring(a,b)不包含結束位置,ab指的是下標.獲取a到b之間的字符.
charAt(a),根據(jù)下標找出字符串里的字符.注意search返回下標,而charAt返回字符.
split("-")在字符串中若有"-",則用"-"分割字符串,返回數(shù)組.
match(re)匹配 檢索字符串,按照re的規(guī)則提取出來字符串,返回數(shù)組
replace(a,b)將a替換為b
正則表達式可以極大簡化普通字符串操作(簡化90%吧,不夸張的說)
正則表達式僅僅是一個計算機方便識別并操作字符串的式子,
RegExp是其大名,但是比較麻煩,比如
var str="abAd";
var re=new Reg Exp("a","i"); 第一個參數(shù)即為正則表達式,第二個參數(shù)(即正則的選項)為忽略大小寫,ignore
官方說法是js風格的正則,但是它有個小名更簡單,以上可以簡寫為
var str="aijg";
var re=/a/i;
真的是超級簡單,所以大家都是用小名.官方說法為perl風格.
除了直接寫要找的字符外,正則還有一些轉義(轉變意義)字符更方便
\d digital代表某個數(shù)字, \D 大寫就代表相反區(qū)間[^0-9],
[]表示在一個范圍內(nèi)取一個值例如/1a2|1b2|1c2/
可以簡寫為/1[abc]2/
^在[]中代表排除,意為除此之外.-代表范圍,0-9代表0到9的數(shù)字,
\w word 字符[a-z0-9_]
\W大寫代表相反[^a-z0-9_]
\s space 空白 代表空格,制表符等空的東西 \S相反,所有不空的東西
正則里的量詞:{m,n}代表m到n個字符,不寫m代表最多n個,不寫n代表至少m個,只寫m代表正好m個例如
\d{m,n}
意為m到n個數(shù)字,+表示多個的意思例如/\d+/
,多個數(shù)字.相當于\d{1,}
.*
表示{0,}
但不建議用,?
等于{0,1}
,\.
代表.
(點)
^不在[]里,代表行首,$代表行尾,例如var re=str.repalce(/^\s+|\s+$/g,"");
替換字符串左右兩邊的空格為空(去掉行首尾空格);
|
是或的意思g
是global 正則選項,全局匹配,意為全部.