摘要:淺談?wù)齽t表達(dá)式正則表達(dá)式是對字符串進(jìn)行查找替換和提取等操作的工具。參數(shù)參數(shù)是一個字符串,制訂了正則表達(dá)式的模式和其他正則表達(dá)式參數(shù)是一個可選的字符串,包含屬性,分別用于指定全局匹配區(qū)分大小寫的匹配和多行匹配。
淺談?wù)齽t表達(dá)式
正則表達(dá)式是對字符串進(jìn)行查找替換和提取等操作的工具。有兩種寫法:
直接量語法
/pattern/attribues
RegExp對象語法
new RegExp(pattern,attributes);
舉個例子,比如我們要在一段字符串中查找所以數(shù)字,如下:
var str = "1 23 sda 34 adl34 7655 87 a 90 0"; console.log(str.match(/d+/g)) // ["1", "23", "34", "34", "7655", "87", "90", "0"]
只需要這么簡單的一段代碼就能在控制臺打印出我們需要的結(jié)果了。如果用一般的寫法,我們可能需要遍歷字符串,還要對字符串的內(nèi)容進(jìn)行判斷,就要寫一大段代碼,而利用正則表達(dá)式,我們可以很輕松的達(dá)成我們的需要。
再舉個例子,我們要對"35621237.61"這串?dāng)?shù)字添加千分位分隔符:
var a = "35621237.61"; var reg=/(?=(d{3})+(.|$))/g; console.log(a.replace(reg,",")) //35,621,237.61
就這樣就搞定了!
不過正則表達(dá)式有個缺點,就是符號太多,有時候看上去一臉懵逼,為了了解正則表達(dá)式,我們現(xiàn)在來看看正則表達(dá)式的各種屬性,以利用這個強大的工具。
參數(shù)參數(shù) pattern 是一個字符串,制訂了正則表達(dá)式的模式和其他正則表達(dá)式
參數(shù) attributes 是一個可選的字符串,包含屬性"g"、"i"、"m",分別用于指定全局匹配、區(qū)分大小寫的匹配和多行匹配。
修飾符i 執(zhí)行對大小寫不敏感的匹配 g 全局匹配,即查找所有匹配 m 執(zhí)行多行匹配方括號
方括號用于查找某個范圍內(nèi)的字符
[abc] 查找方括號之間的任何字符 [^abc] 查找任何不在方括號之間的字符 [0-9] 查找任何從 0 至 9 的數(shù)字 [a-z] 查找任何從小寫 a 到小寫 z 的字符 [A-Z] 查找任何從大寫 A 到大寫 Z 的字符 [adgk] 查找給定集合內(nèi)的任何字符元字符
即特殊符號
. 查找單個字符,除了換行和行結(jié)束符 w 查找單詞字符 W 查找非單詞字符 d 查找數(shù)字 D 查找非數(shù)字字符 s 查找空白字符 S 查找非空白字符 匹配單詞邊 B 匹配非單詞邊界