1、 預判模式
1、適用於需要同時判斷多個條件的情況下。
2、使用方法為(?=表示式)
案例
當我們需要驗證乙個字串,它必須符合8-15位,必須有大寫字母,小寫字母,數字,特殊字元,這時候如果我們對每個條件都單獨做判斷,那會使**非常多而且冗餘,這時候我們的預判模式就登場了。
let reg =
/^(?=.*[a-z])(?=.*[a-z])(?=.*\d)(?=.*[~!@#$%^&*()_+`\-={}:";'<>?,.\\/]).$/
console.
log(reg.
test
('aaaaaaasda!'))
//false
console.
log(reg.
test
('1223456sda!'))
//true
這裡我們分析一下這行**,首先(?=.*[a-z])
它的含義是當前字串必須滿足帶有小寫字母,(?=.*[a-z])
代表必須有大寫字母,後邊的兩項也是一樣的,這樣我們就可以對於整個字串進行多次驗證,從而簡化**。
貪婪模式
1、貪婪模式形成的元凶是(.*)
和(.+)
,.
會匹配所有字元,而*
和+
又可以匹配多個,所以導致了該正則會匹配它之後的所有的字元,
2、取消貪婪模式我們可以用(.*?)
和.+?
正規表示式 貪婪模式和非貪婪模式
在正規表示式中,存在兩種匹配模式。貪婪模式 正規表示式,在符合條件前提下,會盡可能多的匹配結果 懶惰模式 在正規表示式,如果符合條件的前提下,會盡可能少的匹配。在python中正規表示式預設是貪婪模式 個別語言也可能是非貪婪模式 貪婪模式就是總會嘗試匹配到更多的字元。非貪婪模式則反之,總是嘗試匹配盡...
正規表示式貪婪模式
貪婪匹配與非貪婪匹配 貪婪匹配 預設情況下,正規表示式使用最長匹配原則 也叫貪婪匹配原則 例如 要將 zoom 中匹配 zo?的部 分替換成 r 替換的的結果是 rom 如果要將 zoom 中匹配 zo 的部分替換成 r 替換後的結果是 rm 非貪婪匹配 當字元?緊隨其他限定符 之後時,匹配模式變成...
正規表示式, 貪婪模式
2018 2 28 10 15 09 星期三 好幾年沒怎麼用過正則了,正則有乙個常見的用法就是非貪婪模式 方法一 在 和 之後 表示非貪婪匹配 限定符都是貪婪的,因為它們會盡可能多的匹配文字,只有在它們的後面加上乙個?就可以實現非貪婪或最小匹配。這和 本身代表0次或1次的限制有關 除了換行符外的任意...