おバカな正規表現
小文字, 大文字, 数字, 記号の3種類以上を含む文字列にマッチする正規表現
素直にバリデーション関数を作りましょう
小文字とは [a-z] 大文字とは [A-Z] 数字とは [0-9] 記号とは /*-+.,!#$%&()~|_@[] [/*\-+.,!#$%&()~|_@\[\]] 小文字, 大文字, 数字, 記号のいずれか [a-zA-Z0-9/*\-+.,!#$%&()~|_@\[\]] すべてを含む(肯定先読みの場合) ^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[/*\-+.,!#$%&()~|_@\[\]])[a-zA-Z0-9/*\-+.,!#$%&()~|_@\[\]]*$ 1. 小文字大文字数字を含む ^(?=.*([a-z]))(?=.*[A-Z])(?=.*[0-9])[a-zA-Z0-9/*\-+.,!#$%&()~|_@\[\]]*$ aaaAAA111 AAA111aaa 111aaaAAA 2. 大文字数字記号を含む ^(?=.*[A-Z])(?=.*[0-9])(?=.*[/*\-+.,!#$%&()~|_@\[\]])[a-zA-Z0-9/*\-+.,!#$%&()~|_@\[\]]*$ BBB222!!! 222!!!BBB BBB222!!! 3. 小文字数字記号を含む ^(?=.*[a-z])(?=.*[0-9])(?=.*[/*\-+.,!#$%&()~|_@\[\]])[a-zA-Z0-9/*\-+.,!#$%&()~|_@\[\]]*$ ccc333@@@ 333@@@ccc @@@ccc333 4. 小文字大文字記号を含む ^(?=.*[a-z])(?=.*[A-Z])(?=.*[/*\-+.,!#$%&()~|_@\[\]])[a-zA-Z0-9/*\-+.,!#$%&()~|_@\[\]]*$ dddDDD### DDD###ddd ###dddDDD 1 or 2 or 3 or 4 (^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])[a-zA-Z0-9/*\-+.,!#$%&()~|_@\[\]]*$|^(?=.*[A-Z])(?=.*[0-9])(?=.*[/*\-+.,!#$%&()~|_@\[\]])[a-zA-Z0-9/*\-+.,!#$%&()~|_@\[\]]*$|^(?=.*[a-z])(?=.*[0-9])(?=.*[/*\-+.,!#$%&()~|_@\[\]])[a-zA-Z0-9/*\-+.,!#$%&()~|_@\[\]]*$|^(?=.*[a-z])(?=.*[A-Z])(?=.*[/*\-+.,!#$%&()~|_@\[\]])[a-zA-Z0-9/*\-+.,!#$%&()~|_@\[\]]*$)