正則表達(dá)式

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

正則表達(dá)式是由一個(gè)字符序列形成的搜索模式技矮。
當(dāng)你在文本中搜索數(shù)據(jù)時(shí)化漆,你可以用搜索模式來(lái)描述你要查詢(xún)的內(nèi)容估脆。
正則表達(dá)式可以是一個(gè)簡(jiǎn)單的字符,或一個(gè)更復(fù)雜的模式座云。
正則表達(dá)式可用于所有文本搜索和文本替換的操作疙赠。

語(yǔ)法

/正則表達(dá)式主體/修飾符(可選)
其中修飾符是可選的。

實(shí)例:
var patt = /runoob/i
實(shí)例解析:
/runoob/i 是一個(gè)正則表達(dá)式朦拖。
runoob 是一個(gè)正則表達(dá)式主體 (用于檢索)圃阳。
i 是一個(gè)修飾符 (搜索不區(qū)分大小寫(xiě))。
使用字符串方法
在 JavaScript 中璧帝,正則表達(dá)式通常用于兩個(gè)字符串方法 : search() 和 replace()捍岳。
search() 方法 用于檢索字符串中指定的子字符串,或檢索與正則表達(dá)式相匹配的子字符串睬隶,并返回子串的起始位置锣夹。
replace() 方法 用于在字符串中用一些字符替換另一些字符,或替換一個(gè)與正則表達(dá)式匹配的子串苏潜。
search() 方法使用字符串
search 方法可使用字符串作為參數(shù)银萍。字符串參數(shù)會(huì)轉(zhuǎn)換為正則表達(dá)式:
實(shí)例
檢索字符串中 "Runoob" 的子串:
var str = "Visit Runoob!";
var n = str.search("Runoob");

replace() 方法使用正則表達(dá)式

實(shí)例
使用正則表達(dá)式且不區(qū)分大小寫(xiě)將字符串中的 Microsoft 替換為 Runoob :
var str = document.getElementById("demo").innerHTML;
var txt = str.replace(/microsoft/i,"Runoob");
結(jié)果輸出為:
Visit Runoob!
正則表達(dá)式參數(shù)可用在以上方法中 (替代字符串參數(shù))。
正則表達(dá)式使得搜索功能更加強(qiáng)大(如實(shí)例中不區(qū)分大小寫(xiě))窖贤。

正則表達(dá)式修飾符

修飾符 可以在全局搜索中不區(qū)分大小寫(xiě):
修飾符 描述
i 執(zhí)行對(duì)大小寫(xiě)不敏感的匹配砖顷。
g 執(zhí)行全局匹配(查找所有匹配而非在找到第一個(gè)匹配后停止)。
m 執(zhí)行多行匹配赃梧。

正則表達(dá)式模式

方括號(hào)用于查找某個(gè)范圍內(nèi)的字符:
表達(dá)式 描述
[abc] 查找方括號(hào)之間的任何字符滤蝠。
[0-9] 查找任何從 0 至 9 的數(shù)字。
(x|y) 查找任何以 | 分隔的選項(xiàng)授嘀。
元字符是擁有特殊含義的字符:
元字符 描述
\d 查找數(shù)字物咳。
\s 查找空白字符。
\b 匹配單詞邊界蹄皱。
\uxxxx 查找以十六進(jìn)制數(shù) xxxx 規(guī)定的 Unicode 字符览闰。
量詞:
量詞 描述
n+ 匹配任何包含至少一個(gè) n 的字符串。
n* 匹配任何包含零個(gè)或多個(gè) n 的字符串巷折。
n? 匹配任何包含零個(gè)或一個(gè) n 的字符串压鉴。

使用 RegExp 對(duì)象

在 JavaScript 中,RegExp 對(duì)象是一個(gè)預(yù)定義了屬性和方法的正則表達(dá)式對(duì)象锻拘。

使用 test()

test() 方法是一個(gè)正則表達(dá)式方法油吭。
test() 方法用于檢測(cè)一個(gè)字符串是否匹配某個(gè)模式击蹲,如果字符串中含有匹配的文本,則返回 true婉宰,否則返回 false歌豺。
以下實(shí)例用于搜索字符串中的字符 "e":
實(shí)例
var patt = /e/;
patt.test("The best things in life are free!");
字符串中含有 "e",所以該實(shí)例輸出為:
true
你可以不用設(shè)置正則表達(dá)式的變量心包,以上兩行代碼可以合并為一行:
/e/.test("The best things in life are free!")

使用 exec()

exec() 方法是一個(gè)正則表達(dá)式方法类咧。
exec() 方法用于檢索字符串中的正則表達(dá)式的匹配。
該函數(shù)返回一個(gè)數(shù)組蟹腾,其中存放匹配的結(jié)果痕惋。如果未找到匹配,則返回值為 null岭佳。

驗(yàn)證

/是否帶有小數(shù)/
function isDecimal(strValue ) {
var objRegExp= /^\d+.\d+$/;
return objRegExp.test(strValue);
}

/校驗(yàn)是否中文名稱(chēng)組成 /
function ischina(str) {
var reg=/^[\u4E00-\u9FA5]{2,4}$/; /
定義驗(yàn)證表達(dá)式
/
return reg.test(str); /進(jìn)行驗(yàn)證/
}

/校驗(yàn)是否全由8位數(shù)字組成 /
function isStudentNo(str) {
var reg=/^[0-9]{8}$/; /
定義驗(yàn)證表達(dá)式
/
return reg.test(str); /進(jìn)行驗(yàn)證/
}

/*校驗(yàn)電話(huà)碼格式 */
function isTelCode(str) {
var reg= /^((0\d{2,3}-\d{7,8})|(1[3584]\d{9}))$/;
return reg.test(str);
}

/*校驗(yàn)郵件地址是否合法 */
function IsEmail(str) {
var reg=/^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+/;
return reg.test(str);
}
詳見(jiàn)JavaScript RegExp對(duì)象血巍。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市珊随,隨后出現(xiàn)的幾起案子述寡,更是在濱河造成了極大的恐慌,老刑警劉巖叶洞,帶你破解...
    沈念sama閱讀 211,423評(píng)論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件鲫凶,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡衩辟,警方通過(guò)查閱死者的電腦和手機(jī)螟炫,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,147評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)艺晴,“玉大人昼钻,你說(shuō)我怎么就攤上這事》饽” “怎么了然评?”我有些...
    開(kāi)封第一講書(shū)人閱讀 157,019評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀(guān)的道長(zhǎng)狈究。 經(jīng)常有香客問(wèn)我碗淌,道長(zhǎng),這世上最難降的妖魔是什么抖锥? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,443評(píng)論 1 283
  • 正文 為了忘掉前任亿眠,我火速辦了婚禮,結(jié)果婚禮上磅废,老公的妹妹穿的比我還像新娘纳像。我一直安慰自己,他們只是感情好拯勉,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,535評(píng)論 6 385
  • 文/花漫 我一把揭開(kāi)白布竟趾。 她就那樣靜靜地躺著耙考,像睡著了一般。 火紅的嫁衣襯著肌膚如雪潭兽。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,798評(píng)論 1 290
  • 那天斗遏,我揣著相機(jī)與錄音山卦,去河邊找鬼。 笑死诵次,一個(gè)胖子當(dāng)著我的面吹牛账蓉,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播逾一,決...
    沈念sama閱讀 38,941評(píng)論 3 407
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼铸本,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了遵堵?” 一聲冷哼從身側(cè)響起箱玷,我...
    開(kāi)封第一講書(shū)人閱讀 37,704評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎陌宿,沒(méi)想到半個(gè)月后锡足,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,152評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡壳坪,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,494評(píng)論 2 327
  • 正文 我和宋清朗相戀三年舶得,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片爽蝴。...
    茶點(diǎn)故事閱讀 38,629評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡沐批,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出蝎亚,到底是詐尸還是另有隱情九孩,我是刑警寧澤,帶...
    沈念sama閱讀 34,295評(píng)論 4 329
  • 正文 年R本政府宣布颖对,位于F島的核電站捻撑,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏缤底。R本人自食惡果不足惜顾患,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,901評(píng)論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望个唧。 院中可真熱鬧江解,春花似錦、人聲如沸徙歼。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,742評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至桨螺,卻和暖如春宾符,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背灭翔。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,978評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工魏烫, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人肝箱。 一個(gè)月前我還...
    沈念sama閱讀 46,333評(píng)論 2 360
  • 正文 我出身青樓哄褒,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親煌张。 傳聞我的和親對(duì)象是個(gè)殘疾皇子呐赡,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,499評(píng)論 2 348

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