0
我試圖使用正則表達式強密碼。避免在正則表達式密碼中輸入空格Laravel 5.4
我的正則表達式在下面。完美適用於以下功能。
敏1位
敏1低炭
敏1上焦炭
敏1個特殊字符
分8個 字符
最多15個字符
^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[^\w]).{8,15}$
可有人建議避免進入空格?
我試圖使用正則表達式強密碼。避免在正則表達式密碼中輸入空格Laravel 5.4
我的正則表達式在下面。完美適用於以下功能。
敏1位
敏1低炭
敏1上焦炭
敏1個特殊字符
分8個 字符
最多15個字符
^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[^\w]).{8,15}$
可有人建議避免進入空格?
這個怎麼樣?
^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[^\w])(?!.*?\s).{8,15}$
我只是除了你的一切積極向前看符號加負前瞻的空白。
至於它是什麼意思,它基本上有一堆「超前」,意思是「只有在選擇的東西后面纔會創建匹配」。它有四個不同的向前看符號:
(?=.*?[A-Z]) // followed by any number of characters and then a capital letter
(?=.*?[a-z]) // followed by any number of characters and then a lowercase letter
(?=.*?[0-9]) // followed by any number of characters and then a number
(?=.*?[^\w]) // followed by any number of characters and then not a word character (0-9a-zA-Z_)
的^
之初意味着開始用。所以它基本上說,正則表達式的開始應該遵循上面指定的所有四個條件。我剛剛添加了一條說,開始後可能不會有空格。它被稱爲「負向超前」:
(?!.*?\s)
你有沒有解釋關於(?=。*?[a-z])的鏈接? +1的幫助。謝謝 – Pankaj
是的,我發現的最好的參考是MDN。 這是用於JavaScript,但js和php正則表達式與我的經驗大致相同。 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp。還有詳細的細目 https://regex101.com/r/nKgk6R/1 – user3413723