什么是正則表達(dá)式
正則表達(dá)式(Regular Expression)是用于匹配字符中的字符組合的模式锻拘,在JavaScript中荚恶,正則表達(dá)式是對象
- 作用:
- 匹配:驗(yàn)證表單
- 替換:過濾敏感詞
- 提仍藐恰:從字符串中獲取想要的特定部分
// /表達(dá)式/
var regexp = new RegExp(/asd/);
var rg = /asd/;
test() 正則對象方法邪锌,用于檢測字符串是否符合該規(guī)則芒炼,該對象會返回true或false,參數(shù)是測試字符串
regexObj.test(str)
一個(gè)正則表達(dá)式可以由簡單的字符構(gòu)成批狐,比如/asd/,也可以是簡單和特殊字符的組合,比如鸳谜。/asd*wq/膝藕。其中特殊字符被稱為元字符。
邊界符 ^ $
//正則表達(dá)式里邊不需要加引號咐扭,數(shù)字行和字符型都不需要 /asd/ 的意思是只要包含有asd 這個(gè)字符返回的都是true
var rg = /asd/;
console.log(rg.rest('asd'));
console.log(rg.rest('aasdf'));
var reg = /^asd/; //以asd 開頭
console.log(rg.rest('asd'));//true
console.log(rg.rest('asdv'));//true
console.log(rg.rest('aasdv'));//false
var reg = /^asd$/; //精確匹配束莫,必須是asd
字符類
[]表示有一系列字符可供選擇,只要匹配其中一個(gè)就行
var rg = /[asd]/; // 只要包含有asd 其中一個(gè)就是true
var rg1 = /^[asd]$/; // 三選一 只能是asd其中的一個(gè)
var rg2 = /^[a-z]$/; // 26個(gè)英文字母中的任何一個(gè) 返回true
// 字符組合
var rg3 = /^[a-zA-Z0-9_-]$/;// 大小寫英文字母 數(shù)字 和_和-
// 如果中括號里面有^, 表示取反的意思
var rg3 = /^[^a-zA-Z0-9_-]$/;
量詞符
用來設(shè)定某個(gè)模式出現(xiàn)的次數(shù)
// * 相當(dāng)于>=0 可以出現(xiàn)大于等于0次
var rg =/^a*$/;
// + 相當(dāng)于>=1
var rg1 =/^a+$/;
// ? 相當(dāng)于 0 || 1
var rg2 =/^a?$/;
// {3} 重復(fù)n次
var rg3 =/^a{3}$/;
// {3,} 大于等于n
var rg4 =/^a{3,}$/;
// {3,15} 大于等于3,小于等于15
var rg5 =/^a{3,15}$/;
var rg6 = /^[a-zA-Z0-9_-]{6,13}$/;
預(yù)定義類
\d:匹配0-9之間的任一數(shù)字草描,等于[0-9]
\D:匹配所有0-9以外的字符,等于 [^0-9]
\w:匹配任意的字母策严、數(shù)字穗慕、下劃線,等于[A-Za-z0-9_]
\W:除所有的字母妻导、數(shù)字逛绵、下劃線以外的字符怀各,等于[^A-Za-z0-9_]
\s:匹配空格(包括換行符、制表符术浪、空格符等)瓢对,相當(dāng)于[\t\r\n\v\f]
\S:匹配非空格,相當(dāng)于[^\t\r\n\v\f]
替換
replace()方法可以實(shí)現(xiàn)替換字符串測操作胰苏,用來替換的參數(shù)可以是字符串或者正則表達(dá)式
stringObject.replace(regexp/substr,repslacement)
第一個(gè)參數(shù)是被替換的字符串捉或者正則表達(dá)式
第二個(gè)參數(shù)替換為的字符串
返回值是一個(gè)替換完畢的新字符串
- 過濾敏感詞
stringObject.replace(/激情/gi,'**')
/表達(dá)式|表達(dá)式|表達(dá)式.../[switch]
switch被稱為修飾符硕蛹,按照什么樣得模式來匹配
- g:全局匹配
- i:忽略大小寫
- gi:全局匹配加忽略大小寫