【Javascript】正則表達(dá)式


\d哗伯,\w,\s,[a-zA-Z0-9],\b,.,*,+,?,x{3},^,$分別是什么?

字符中大致可分為四類

范圍類

[a-zA-Z0-9]:匹配一個(gè)字符臊泌,這個(gè)字符可以是大寫字母刁赖、小寫字母逛钻、數(shù)字中的任意一個(gè)

預(yù)定義類

\d:數(shù)字字符,等價(jià)于[0-9]
\w:?jiǎn)卧~字符雨女,字母谚攒、數(shù)字下劃線,等價(jià)于[a-zA-Z_0-9]
\s:空白符戚篙,等價(jià)于[\t\n\x0B\f\r]
.:除了回車符和換行符之外的所有字符五鲫,等價(jià)于[^\r\n]

邊界類

\b:?jiǎn)卧~邊界
^:以xxx開(kāi)頭(在[]中使用時(shí)為取反)
$:以xxx結(jié)尾

量詞

*:出現(xiàn)零次或多次(任意次)
+:出現(xiàn)一次或多次(至少出現(xiàn)一次)
?:出現(xiàn)零次或一次(最多出現(xiàn)一次)


寫一個(gè)函數(shù)trim(str)

去除字符串兩邊的空白字符

function trim(str) {
    return str.replace(/^\s+|\s+$/g, '');
}
trim(' NinthG ')

寫一個(gè)函數(shù)isEmail(str)

判斷用戶輸入的是不是郵箱

// 判斷依據(jù):
//郵箱格式xxxx@xx.com,即若干字符鏈接'@'后溺职,連接若干字符岔擂,再連接'.'后接'com'
function isEmail(str) {
    return /^\w*@\w*\.\w*$/.test(str)?'合法輸入':'非法輸入' //以單詞字符開(kāi)頭后接'@'后接若干字符位喂,接'.'再接若干字符,最后以三目運(yùn)算符輸出檢測(cè)結(jié)果
}
//測(cè)試輸出
isEmail('joaisjoas@.askda.asfa')
"非法輸入"
isEmail('joaisjoas@askda.asfa')
"合法輸入"
isEmail('j oaisjoas@askda.asfa')
"非法輸入"

寫一個(gè)函數(shù)isPhoneNum(str)

判斷用戶輸入的是不是手機(jī)號(hào)

// 判斷依據(jù):以1開(kāi)頭的連續(xù)11位數(shù)字
function isPhoneNum(str) {
    return /^1\d{10}$/.test(str)?'合法輸入':'非法輸入' //以1開(kāi)頭后接10個(gè)數(shù)組,最后以三目運(yùn)算符輸出檢測(cè)結(jié)果
}
//測(cè)試輸出
isPhoneNum('12345678910')
"合法輸入"
isPhoneNum('13051941205')
"合法輸入"
isPhoneNum('13051941205999')
"非法輸入"
isPhoneNum('a13051941205999')
"非法輸入"

寫一個(gè)函數(shù)isValidUsername(str)

判斷用戶輸入的是不是合法的用戶名(長(zhǎng)度6-20個(gè)字符乱灵,只能包括字母塑崖、數(shù)字、下劃線)

// 判斷依據(jù):以1開(kāi)頭的連續(xù)11位數(shù)字
function isValidUsername(str) {
    return /^\w{6,20}$/.test(str)?'合法輸入':'非法輸入' //6~20個(gè)單詞字符痛倚,最后以三目運(yùn)算符輸出檢測(cè)結(jié)果
}
//測(cè)試輸出
isValidUsername('abcdefghijklmnopqrst')
"合法輸入"
isValidUsername('abcdefghi_jklmnopqrst')
"非法輸入"
isValidUsername('abcde')
"非法輸入"

貪婪模式與非貪婪模式

這個(gè)模式的區(qū)別主要針對(duì)于{x,y}的量詞形式规婆,闡述的是:在同時(shí)滿足x和y的情況下到底取x還是y的區(qū)別

貪婪模式

根據(jù)課件及查閱,我們可以知道蝉稳,在未做特殊聲明時(shí)抒蚜,默認(rèn)是使用貪婪模式,結(jié)合上面的例子耘戚,也就是說(shuō)默認(rèn)會(huì)取y個(gè)嗡髓,這個(gè)模式叫做貪婪模式

非貪婪模式

而我們有的時(shí)候用到正則中的范圍量詞時(shí),有特殊需求收津,需要少取多次的時(shí)候饿这,就需要用到非貪婪模式,也就是希望取x撞秋,如果都滿足长捧,那就取多次,這叫做非貪婪模式吻贿,簡(jiǎn)單來(lái)書就是在量詞后加上?

舉例

var str = '0123456789'

// 貪婪模式

str.match(/\d{3,4}/g)
(2) ["0123", "4567"]
str.match(/\d{3,5}/g)
(2) ["01234", "56789"]

// 非貪婪模式

str.match(/\d{3,5}?/g)
(3) ["012", "345", "678"]
str.match(/\d{4,5}?/g)
(2) ["0123", "4567"]

簡(jiǎn)單的總結(jié)來(lái)說(shuō)串结,貪婪模式,在兩個(gè)參數(shù)均滿足情況下舅列,優(yōu)先考慮y奉芦,而非貪婪模式,優(yōu)先考慮x

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末剧蹂,一起剝皮案震驚了整個(gè)濱河市声功,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌宠叼,老刑警劉巖先巴,帶你破解...
    沈念sama閱讀 216,744評(píng)論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異冒冬,居然都是意外死亡伸蚯,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,505評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門简烤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)剂邮,“玉大人,你說(shuō)我怎么就攤上這事横侦』用龋” “怎么了绰姻?”我有些...
    開(kāi)封第一講書人閱讀 163,105評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)引瀑。 經(jīng)常有香客問(wèn)我狂芋,道長(zhǎng),這世上最難降的妖魔是什么憨栽? 我笑而不...
    開(kāi)封第一講書人閱讀 58,242評(píng)論 1 292
  • 正文 為了忘掉前任帜矾,我火速辦了婚禮,結(jié)果婚禮上屑柔,老公的妹妹穿的比我還像新娘屡萤。我一直安慰自己,他們只是感情好掸宛,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,269評(píng)論 6 389
  • 文/花漫 我一把揭開(kāi)白布灭衷。 她就那樣靜靜地躺著,像睡著了一般旁涤。 火紅的嫁衣襯著肌膚如雪翔曲。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書人閱讀 51,215評(píng)論 1 299
  • 那天劈愚,我揣著相機(jī)與錄音瞳遍,去河邊找鬼。 笑死菌羽,一個(gè)胖子當(dāng)著我的面吹牛掠械,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播注祖,決...
    沈念sama閱讀 40,096評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼猾蒂,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了是晨?” 一聲冷哼從身側(cè)響起肚菠,我...
    開(kāi)封第一講書人閱讀 38,939評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎罩缴,沒(méi)想到半個(gè)月后蚊逢,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,354評(píng)論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡箫章,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,573評(píng)論 2 333
  • 正文 我和宋清朗相戀三年烙荷,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片檬寂。...
    茶點(diǎn)故事閱讀 39,745評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡终抽,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情昼伴,我是刑警寧澤匾旭,帶...
    沈念sama閱讀 35,448評(píng)論 5 344
  • 正文 年R本政府宣布,位于F島的核電站亩码,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏野瘦。R本人自食惡果不足惜描沟,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,048評(píng)論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望鞭光。 院中可真熱鬧吏廉,春花似錦、人聲如沸惰许。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 31,683評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)汹买。三九已至佩伤,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間晦毙,已是汗流浹背生巡。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 32,838評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留见妒,地道東北人孤荣。 一個(gè)月前我還...
    沈念sama閱讀 47,776評(píng)論 2 369
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像须揣,于是被迫代替她去往敵國(guó)和親盐股。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,652評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容