正則表達(dá)式是描述字符模式的對象,用于對字符串模式匹配及檢索替換错邦,是對字符串執(zhí)行模式匹配的強(qiáng)大工具涎显,應(yīng)用比較廣泛,一般普通小型公司兴猩,用到的正則大都是一些金額數(shù)字、郵箱地址等表單驗(yàn)證早歇,而這些一般人使用時倾芝,都是百度谷歌搜索,然后復(fù)制黏貼箭跳,導(dǎo)致對正則越來越?jīng)]有清晰的認(rèn)識晨另。個人感覺自己就是如此,因此花點(diǎn)時間從簡入繁一點(diǎn)點(diǎn)記錄寫正則的過程谱姓,希望加深自己的理解借尿。
1、正則表達(dá)式的修飾符就3個:
i(不區(qū)分大小寫)屉来;
g(執(zhí)行全局匹配)路翻;
m(執(zhí)行多行匹配);
2茄靠、表達(dá)式的模式:
2.1茂契、表達(dá)式:
2.1.1、[abc] 查找括號內(nèi)的任何字符慨绳;
2.1.2掉冶、[^abc] 查找任何不在括號內(nèi)的字符;
2.1.3脐雪、[0-9]查找0~9的數(shù)字;//英文字符也是類似厌小。
2.1.4、(x|y)查找x或者y的內(nèi)容战秋;
2.2璧亚、元字符:
2.2.1、\d 查找數(shù)字获询;
2.2.2涨岁、\D 查找非數(shù)字字符;
2.2.3吉嚣、\s 查找空白字符梢薪;
2.2.4、\S 查找非空白字符尝哆;
2.2.5秉撇、\w 查找單詞字符;
2.2.6、\W 查找非單詞字符琐馆;
2.2.7规阀、\b 匹配單詞邊界;
2.2.8瘦麸、\B 匹配非單詞邊界谁撼;
2.2.9、\0 匹配NULL字符滋饲;
2.2.10厉碟、\n 匹配換行符,\f 查找換頁符屠缭,\r查找回車符箍鼓;
2.2.11、\t 查找制表符呵曹,\v 查找垂直制表符款咖;
2.2.12、\xxx查找以八進(jìn)制數(shù)xxx規(guī)定的字符奄喂;
2.2.13铐殃、\xdd 查找以16進(jìn)制dd規(guī)定的字符;
2.2.14跨新、\uxxxx 查找以16進(jìn)制數(shù)xxxx規(guī)定的Unicode字符;
2.2.15背稼、. 查找單個字符,除了換行和行結(jié)束符玻蝌;
2.3蟹肘、量詞:
2.3.1、n+ 匹配任何包含一個n的字符串俯树;
2.3.2帘腹、n* 匹配任何包含0個或多個n的字符串;
2.3.3许饿、n? 匹配任何包含0個或1個n的字符串阳欲;
2.3.4、n{x} 匹配包含x個n的字符串陋率,個數(shù)不對也是無法匹配的球化;
2.3.5、n{x.} x是正整數(shù)瓦糟,前面出現(xiàn)n個x后筒愚,才開始輸出匹配的;
2.3.6菩浙、n{x,y}巢掺,x次之后開始匹配句伶,但最多y次;
2.3.7陆淀、n$ 匹配任何結(jié)尾為n的字符串考余;
2.3.8、^n 匹配任何開頭為n的字符串轧苫;
2.3.9楚堤、?=n 匹配任何其后緊接指定字符串n的字符串;
2.3.10含懊、?!n 匹配任何其后沒有緊接指定字符串n的字符串钾军;
2.4、RegExp 對象方法:
2.4.1绢要、compile 修改編譯正則表達(dá)式;
2.4.2拗小、exec 檢索字符串中指定的值重罪,返回找到的值,并確認(rèn)其位置哀九;
2.4.3剿配、test 檢索字符串指定的值,返回true或false;這個用得最多!
Code篇:
1阅束、簡單的字符串操作:
//字符串查詢方法:
var str = "hello Word";
var n = str.search(/word/i);
//replace()替換
var restr = "hello lanbinghan";
var txt = restr.replace("hello", "hi");
2呼胚、驗(yàn)證數(shù)字
/^[0-9]{0,1}$/; //只驗(yàn)證個位數(shù),后面{}區(qū)間是用來控制整數(shù)的位數(shù)的;
/^\-[0-9]{0,1}$/; //驗(yàn)證負(fù)的個位整數(shù)息裸;
/^\+?[1-9][0-9]*$/; //驗(yàn)證非0正整數(shù)
/^[0-9]+(.[0-9]{2})?$/蝇更;//有2位小數(shù)的正實(shí)數(shù)
3、驗(yàn)證英文字符
/^[A-Za-z]+$/ //驗(yàn)證大小寫英文字母;
/^[A-Za-z0-9]+$/ //驗(yàn)證數(shù)字和英文的組合;
/^\w+$/ //驗(yàn)證由數(shù)字呼盆、英文字符或者下劃線組成的字符串;
/^[a-zA-Z]\w{5,17}$/ //驗(yàn)證用戶密碼
4年扩、常用驗(yàn)證
/^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/ //驗(yàn)證email地址
/(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/ //驗(yàn)證身份證
/^1[34578]\d{9}$/ //驗(yàn)證手機(jī)號
/^(([0\+]\d{2,3}-)?(0\d{2,3})-)(\d{7,8})(-(\d{3,}))?$/ //驗(yàn)證座機(jī)電話
/^[\u4e00-\u9fa5],{0,}$/ //驗(yàn)證漢字
寫正則,開始將邏輯理清楚访圃,然后拿這些表達(dá)式等基礎(chǔ)元素一點(diǎn)點(diǎn)按照邏輯拼接起來厨幻。