正規表示式的應用場景有很多,一般是用來驗證字串,提取字串和替換字串。
給乙個字串,把字串裡面的鏈結、數字、**等顯示不同的顏色;
給乙個包含自定義表情的文字,找出裡面的表情,替換成本地的表情;或者乙個字串進行替換
解析
:
銀行卡的位數實際是不固定的,如果按照字串替換的方式的話,就要對銀行卡的位數進行判斷,然後再進行替換,需要做多次if-else判斷,這樣**實際上是非常臃腫難看的。
所以我們嘗試著用正規表示式來解決一下。
先來看銀行卡的規律,銀行卡數字在15~19之間,第乙個數字不能是0,在這裡我們要對倒數第4位前面的4位數進行替換,必然要使用到分組。按照正則裡面分組的知識點,分組從左到右依次是組1,組2,組3,依次類推,比如組1,可以用1或者$1來表示。
來看具體**:
let reg8 = /^([1-9]\d)\d(\d)$/
let str8a = '370248145284512' //15
let str8b = '3702481452845125' //16
let str8c = '3702481452845125832' //19
console.log('---------銀行卡號-----------')
console.log(str8a.replace(reg8,`$1****$2`)) // 3702481****4512
console.log(str8b.replace(reg8,`$1****$2`)) // 37024814****5125
console.log(str8c.replace(reg8,`$1****$2`)) // 37024814528****5832
解析
:
小時是0-23小時,分和秒都是0-59,根據它們的規律我們可以使用分組和修飾符來找到全文的時間。
具體**:
let reg = /((2[0-3])|([0-1]\d))(:[0-5]\d)/g
let str = '現在的時間是12:23:44,下一刻應該是12:55:22,但絕不是24:13:34'
console.log(str.match(reg)) // ["12:23:44", "12:55:22"]
選出8**0,9**0,同時不包含8200, 8310, 8520, 8440, 8320, 8100, 8920, 8800, 8180, 8010, 8480, 8150
解析
:
這個是同事的乙個需求,開始我的想法是寫兩個正規表示式,乙個將8**0,9**0的數字選出來,乙個將不包含的數字選出來,然後從前面的數字當中剔除掉後面的那些數字。
兩個正規表示式為:
re1 = /[8-9]\\d0/g
reg2 = /8(200|310|520|440|320|100|920|800|180|010|480|150)/g
但是同事告訴我只能用乙個表示式做出來,那麼就要使用到之前所說的零寬度反向預查了。已知第乙個數字後面一定不為200,那麼使用零寬度反向預查來進行篩選。
let str9 = '8200, 8310, 8520, 8440, 8320, 8100, 8920, 8800, 8180, 8010, 8480, 8150, 3434,545656,8544,6554,8900,9330,9120,8333,8200,9200'
let reg9 = /(8(?!(200|310|520|440|320|100|920|800|180|010|480|150))\d0)|(9\d0)/g
console.log(str9.match(reg9)) // ["8900", "9330", "9120", "9200"]
這個表示式第乙個數字是8或者9,分別進行判斷,8後面一定不為題目要求的數字,零寬度反向預查和\b
一樣雖然會限定匹配內容,但實際上是不會匹配到任何內容的。 正規表示式應用
d 非負整數 正整數 0 0 9 1 9 0 9 正整數 d 0 非正整數 負整數 0 0 9 1 9 0 9 負整數 d 整數 d 非負浮點數 正浮點數 0 0 9 0 9 1 9 0 9 0 9 1 9 0 9 0 9 0 9 1 9 0 9 正浮點數 d 非正浮點數 負浮點數 0 0 9 0 ...
正規表示式(應用)
在此頁面寫正規表示式,可以提供參考,和進行校驗 應用於前端 匹配任意長度的大小寫字母與數字 a za z0 9 匹配任意長度且不為空的大小寫字母與數字 a za z0 9 匹配長度小於20且不為空的大小寫字母與數字 a za z0 9 匹配長度小於20且不為空的大小寫字母與數字與漢字 a za z0...
正規表示式 應用
生成正規表示式 https http ftp rtsp mms s 分析 如果沒有在 裡面的時候,代表以什麼開頭 如果在 裡面的時候,代表除了 之外 https http ftp rtsp mms 代表乙個分組 進行分組的時候,findall方法只返回分組裡面的內容 print re.findall...