JavaScript中正則表達(dá)的使用

什么是正則表達(dá)式

正則表達(dá)式(Regular Expression)是用于匹配字符中的字符組合的模式锻拘,在JavaScript中荚恶,正則表達(dá)式是對象

  • 作用:
  1. 匹配:驗(yàn)證表單
  2. 替換:過濾敏感詞
  3. 提仍藐恰:從字符串中獲取想要的特定部分
// /表達(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被稱為修飾符硕蛹,按照什么樣得模式來匹配

  1. g:全局匹配
  2. i:忽略大小寫
  3. gi:全局匹配加忽略大小寫
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市硕并,隨后出現(xiàn)的幾起案子法焰,更是在濱河造成了極大的恐慌,老刑警劉巖倔毙,帶你破解...
    沈念sama閱讀 212,686評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件埃仪,死亡現(xiàn)場離奇詭異,居然都是意外死亡陕赃,警方通過查閱死者的電腦和手機(jī)卵蛉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,668評論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來么库,“玉大人傻丝,你說我怎么就攤上這事±壬ⅲ” “怎么了桑滩?”我有些...
    開封第一講書人閱讀 158,160評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長允睹。 經(jīng)常有香客問我运准,道長,這世上最難降的妖魔是什么缭受? 我笑而不...
    開封第一講書人閱讀 56,736評論 1 284
  • 正文 為了忘掉前任胁澳,我火速辦了婚禮,結(jié)果婚禮上米者,老公的妹妹穿的比我還像新娘韭畸。我一直安慰自己,他們只是感情好蔓搞,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,847評論 6 386
  • 文/花漫 我一把揭開白布胰丁。 她就那樣靜靜地躺著,像睡著了一般喂分。 火紅的嫁衣襯著肌膚如雪锦庸。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 50,043評論 1 291
  • 那天蒲祈,我揣著相機(jī)與錄音甘萧,去河邊找鬼萝嘁。 笑死,一個(gè)胖子當(dāng)著我的面吹牛扬卷,可吹牛的內(nèi)容都是我干的牙言。 我是一名探鬼主播,決...
    沈念sama閱讀 39,129評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼怪得,長吁一口氣:“原來是場噩夢啊……” “哼咱枉!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起汇恤,我...
    開封第一講書人閱讀 37,872評論 0 268
  • 序言:老撾萬榮一對情侶失蹤庞钢,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后因谎,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體基括,經(jīng)...
    沈念sama閱讀 44,318評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,645評論 2 327
  • 正文 我和宋清朗相戀三年财岔,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了风皿。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,777評論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡匠璧,死狀恐怖桐款,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情夷恍,我是刑警寧澤魔眨,帶...
    沈念sama閱讀 34,470評論 4 333
  • 正文 年R本政府宣布,位于F島的核電站酿雪,受9級特大地震影響遏暴,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜指黎,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,126評論 3 317
  • 文/蒙蒙 一朋凉、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧醋安,春花似錦杂彭、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,861評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至柠辞,卻和暖如春赁炎,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,095評論 1 267
  • 我被黑心中介騙來泰國打工徙垫, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人放棒。 一個(gè)月前我還...
    沈念sama閱讀 46,589評論 2 362
  • 正文 我出身青樓姻报,卻偏偏與公主長得像,于是被迫代替她去往敵國和親间螟。 傳聞我的和親對象是個(gè)殘疾皇子吴旋,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,687評論 2 351