項目要求:
密碼規則:6-16位字符,同時包括數字、大小寫字母和特殊字符四種組合;
特殊字符需在“~@#$%*_-+=:,.?[]{}”范圍內選擇。
具體代碼如下:
var reg = /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[~@#$%\*-\+=:,\\?\[\]\{}]).{6,16}$/; var str = "111saDAA1@"; console.log(reg.test(str));
需要注意:特殊符號中* + 等是需要轉譯的。具體參考如下
特殊字符 | 轉譯說明 |
^ | 匹配輸入字符串的開始位置。要匹配 "^" 字符本身,請使用 \^ 。 |
$ | 匹配輸入字符串的結尾位置。要匹配 "$" 字符本身,請使用 \$ 。 |
. | 匹配除了換行符(\n)以外的任意一個字符。要匹配小數點本身,請使用 \. 。 |
[] | 用來自定義能夠匹配 '多種字符' 的表達式。要匹配中括號,請使用 \[ 和 \] 。 |
* | 修飾匹配次數為 0 次或任意次。要匹配 "*" 字符本身,請使用 \* 。 |
\ | 將下一個字符標記為或特殊字符、或原義字符、或向后引用、或八進制轉義符。 |
? | 修飾匹配次數為 0 次或 1 次。要匹配 "?" 字符本身,請使用 \? 。 |
+ | 修飾匹配次數為至少 1次。要匹配 "+" 字符本身,請使用 \+ 。 |
{} | 修飾匹配次數的符號。要匹配大括號,請使用 \{ 和 \} 。 |
| | 左右兩邊表達式之間 "或" 關系。匹配 "|" 本身,請使用 \| 。 |
() | 標記一個子表達式的開始和結束位置。要匹配小括號,請使用 \( 和 \) 。 |