| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.core.utils; |
| | | |
| | | import java.util.regex.Pattern; |
| | | |
| | | /** |
| | | * Javaæ£åæ ¡éªå¯ç è³å°å
å«ï¼åæ¯æ°åç¹æ®ç¬¦å·ä¸ç2ç§ |
| | | */ |
| | | public class PwdCheckUtil { |
| | | |
| | | /** |
| | | * åå®è®¾ç½®å¯ç æ¶ï¼å¯ç è§åä¸ºï¼ åæ¯ãæ°åãç¹æ®ç¬¦å·ï¼è³å°å¹é
2ç§ |
| | | * åå¯ç å¯è½åºç°çæ
åµæï¼ |
| | | * 1ãæ°å+ç¹æ®ç¬¦å· |
| | | * 2ã忝+ç¹æ®ç¬¦å· |
| | | * 3ã忝+æ°å |
| | | * 4ã忝+æ°å+ç¹æ®ç¬¦å· |
| | | * (ç»åä¸é¡ºåºæ å
³) |
| | | * è§£å³æè·¯ï¼ |
| | | * 1ãéåå符串çå符æ°ç»ï¼æ¥çæ¯å¦å
å«ç®æ ç¹æ®å符ï¼è¥å
å«ï¼åæ è®°å符串 |
| | | * å
å«ç¹æ®å符ï¼å¹¶æ¿æ¢å½åç¹æ®å符为''ã |
| | | * 2ã夿å©ä¸çåç¬¦ç»æçåç¬¦ä¸²ï¼æ¯å¦å¹é
以䏿
åµ |
| | | * - çº¯åæ¯ |
| | | * - 纯æ°å |
| | | * - 忝+æ°å |
| | | * 3ãå符串å¹é
è§å |
| | | * çº¯åæ¯+å
å«ç¹æ®å符 ---- å¹é
éè¿ |
| | | * 纯æ°å+å
å«ç¹æ®å符 ---- å¹é
éè¿ |
| | | * 忝+æ°å+å
å«ä¸ªæ°å符 ---- å¹é
éè¿ |
| | | */ |
| | | //ç¹æ®å符 |
| | | public static final String SPEC_CHARACTERS = " !\"#$%&'()*+,-./:;<=>?@\\]\\[^_`{|}~"; |
| | | // çº¯åæ¯ |
| | | public static final String character = "[a-zA-Z]{1,}$"; |
| | | // 纯æ°å |
| | | public static final String numberic = "[0-9]{1,}$"; |
| | | // 忝忰å |
| | | public static final String number_and_character = "((^[a-zA-Z]{1,}[0-9]{1,}[a-zA-Z0-9]*)+)" + |
| | | "|((^[0-9]{1,}[a-zA-Z]{1,}[a-zA-Z0-9]*)+)$"; |
| | | // åæ¯ææ°å |
| | | public static final String number_or_character = "[a-zA-Z0-9]+$"; |
| | | // 忝æ°åä¸å线 |
| | | public static final String ncw = "\\w+$"; |
| | | |
| | | public static boolean checkPassword(String targetString) { |
| | | String opStr = targetString; |
| | | boolean isLegal = false; |
| | | boolean hasSpecChar = false; |
| | | char[] charArray = opStr.toCharArray(); |
| | | for (char c : charArray) { |
| | | if (SPEC_CHARACTERS.contains(String.valueOf(c))) { |
| | | hasSpecChar = true; |
| | | // æ¿æ¢æ¤å符串 |
| | | opStr = opStr.replace(c, ' '); |
| | | } |
| | | } |
| | | String excSpecCharStr = opStr.replace(" ", ""); |
| | | boolean isPureNum = Pattern.compile(numberic).matcher(excSpecCharStr).matches(); |
| | | boolean isPureChar = Pattern.compile(character).matcher(excSpecCharStr).matches(); |
| | | boolean isNumAndChar = Pattern.compile(number_and_character).matcher(excSpecCharStr).matches(); |
| | | isLegal = ((isPureNum && hasSpecChar) |
| | | || (isPureChar && hasSpecChar) || isNumAndChar && hasSpecChar) || isNumAndChar; |
| | | System.out.println("å符串ï¼" + targetString + ",æ¯å¦ç¬¦åè§åï¼" + isLegal); |
| | | System.out.println("---------------"); |
| | | return isLegal; |
| | | } |
| | | |
| | | public static void main(String[] args) { |
| | | checkPassword("123456a"); |
| | | // checkPassword("41234123"); |
| | | // checkPassword("#$%^&&*("); |
| | | // checkPassword("fasd$$"); |
| | | // checkPassword("41234%%%"); |
| | | // checkPassword("fasd41^(324"); |
| | | // checkPassword("fa413%^&*"); |
| | | // checkPassword("&%fa413%^&*"); |
| | | } |
| | | |
| | | } |