⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 simplevalidation.java

📁 j2ee源码
💻 JAVA
字号:
/*
 * Program Name	: com.leeman.common.util.SimpleValidation
 * Program Type		: Java 1.3 Class Library
 * Dependency		: NIL
 * Description			: Formatter class to convert value to formatted value.
 * Author				: KI LEE
 * Creation Date		: 24 Oct 2003
 * Amendment His.: DD MMM YYYY (XXXXX) <<Resp. Person>> <<Ref. No.>>
 * 							<<Brief Descriptions>>
 * Last Revision		: 24 Oct 2003
 */ 
 
package com.leeman.common.util;

public class SimpleValidation {

	public static final String[] MONTH_LONG_NAME = new String[]{"January","February","March","April","May","June","July","August","September","October","November","December"};
	public static final String[] MONTH_SHORT_NAME = new String[]{"Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"};
	public static final String[] MONTH_NAME = new String[]{"01","02","03","04","05","06","07","08","09","10","11","12"};

	/* Function Name	: isNumeric 
	 * Input Para			: String data	- String to be checked
	 * Out Para				: Boolean		- True if Valid or False if Invalid
	 */
	public static boolean isNumeric(String data)
	{
		try 
		{
			return !((new Double(data)).isNaN());
		}
		catch (Exception ex) 
		{
			return false;
		}
	}
	
	/* Function Name	: isInteger 
	 * Input Para			: String data	- String to be checked
	 * Out Para				: Boolean		- True if Valid or False if Invalid
	 */
	public static boolean isInteger(String data)
	{
		try
		{
			int testInt = Integer.parseInt(data);
			return true;
		}
		catch (NumberFormatException ex)
		{
			return false;
		}
	}

	/* Function Name	: isDouble 
	 * Input Para			: String data	- String to be checked
	 * 							  Integer type - Integer to specific the parts length
	 * Out Para				: Boolean		- True if Valid or False if Invalid
	 */
	public static boolean isDouble(String data, int type)
	{
		return isDouble(data, type, 0, 0);
	}
	
	public static boolean isDouble(String data, int digitlen, int dplacelen)
	{
		return isDouble(data, -1, digitlen, dplacelen);
	}
		
	private static boolean isDouble(String data, int type, int inputDigitlen, int inputDplacelen)
	{
		int digitlen;
		int dplacelen;
		int digitpos;
		String digit;
		String dplace;	
		String numPart;

		if (type == 0)
		{
			digitlen = 9;
			dplacelen = 0;
		}
		else if (type == 1)
		{
			digitlen = 9;
			dplacelen = 2;
		}
		else if (type == 2)
		{
			digitlen = 9;
			dplacelen = 3;
		}		
		else if (type == 3)
		{
			digitlen = 9;
			dplacelen = 4;
		}
		else
		{
			digitlen = inputDigitlen;
			dplacelen = inputDplacelen;
		}
		
		try
		{
			if (!((new Double(data)).isNaN()))
			{
				if (data.substring(0,1).equals("-"))
				{
					numPart = data.substring(1);
				}
				else
				{
					numPart = data;
				}
							
				digitpos = numPart.indexOf(".");
				if ((digitpos == -1) || (digitpos == numPart.length()))
				{
					digit = numPart;
					dplace = "";
				}
				else
				{
					digit = numPart.substring(0, digitpos);
					dplace = numPart.substring(digitpos + 1);
				}
				
				if (isPartValid(digit, digitlen) && isPartValid(dplace, dplacelen))
				{
					return true;
				}
				else
				{
					return false;
				}
			}
			else
			{
				return false;
			}
		}
		catch (Exception ex)
		{
			return false;
		}
	}
	
	/* Function Name	: isPartValid
	 * Input Para			: String data	- String to be checked
	 * 							  Integer type - Integer to specific the parts length
	 * Out Para				: Boolean		- True if Valid or False if Invalid
	 */
	public static boolean isPartValid(String digit, int partlen)
	{
		String strValidChars = "0123456789";
		char strChar;
		boolean blnResult = true;

		if (digit.length() == 0) return false;
		if (digit.length() > partlen) return false;

		for (int chrPos = 0; chrPos < digit.length() && blnResult == true; chrPos++)
		{
			strChar = digit.charAt(chrPos);
			if (strValidChars.indexOf(strChar) == -1)
			{
				blnResult = false;
			}
		}
	
		return blnResult;
	}
	
	public static boolean isTxtTimeToMin(String data)
	{
		if (data == null || data.indexOf(":") < 0){
			return false;
		}
		else
		{
			String hourPart = data.substring(0,data.indexOf(":"));
			String minPart = data.substring(data.indexOf(":") + 1, data.length());
			
			try{
				int hour = Integer.parseInt(hourPart);
				int min = Integer.parseInt(minPart);
				
				if (hour > 24 || min > 59)
				{
					return false;
				}
				else
				{
					return true;
				}
			}
			catch(Exception ex){
				return false;
			}
		}
	}

	/* Function Name	: isTxtDate 
	 * Input Para			: String data	- String to be checked ('DD-MM-YYYY')
	 * Out Para				: Boolean		- True if Valid or False if Invalid
	 */
	public static boolean isTxtDate(String data)
	{
		boolean validFormat = true;
		boolean blnFound = false;
		int dayNum = 0;
		int monthNum = 0;
		int yearNum = 0;
		
		String[] dateArr = Formatter.split(data.replace(' ', '/').replace('-', '/'),"/");
		
		try
		{
			if (dateArr.length != 3)
			{
				validFormat = false;
			}
			else
			{	
				for (int chkArr = 0; chkArr < dateArr.length; chkArr++)
				{
					if (isInteger(dateArr[chkArr]))
					{
						if (chkArr == 0) dayNum = Integer.parseInt(dateArr[chkArr], 10);
						else if (chkArr == 1)
						{
							monthNum = Integer.parseInt(dateArr[chkArr], 10);
						}
						else if (chkArr == 2)
						{
							yearNum = Integer.parseInt(dateArr[chkArr], 10);
						}
					}
					else
					{
						blnFound = false;
						for (int chkStrArr = 0; chkStrArr < MONTH_LONG_NAME.length; chkStrArr++)
						{
							if (dateArr[chkArr].toUpperCase().equals(MONTH_LONG_NAME[chkStrArr].toUpperCase()))
							{
								blnFound = true;
								if (chkArr == 0) dayNum = chkStrArr + 1;
								else if (chkArr == 1) 
								{
									monthNum = chkStrArr + 1;
								}
								else if (chkArr == 2)
								{
									yearNum = chkStrArr + 1;
								}
							}
						}
						
						if (!blnFound)
						{
							for (int chkStrArr = 0; chkStrArr < MONTH_SHORT_NAME.length; chkStrArr++)
							{
								if (dateArr[chkArr].toUpperCase().equals(MONTH_SHORT_NAME[chkStrArr].toUpperCase()))
								{
									blnFound = true;
									if (chkArr == 0) dayNum = chkStrArr + 1;
									else if (chkArr == 1) 
									{
										monthNum = chkStrArr + 1;
									}
									else if (chkArr == 2) 
									{
										yearNum = chkStrArr + 1;
									}
								}
							}	
						}
					}
				}
				
				if (!isDayValid(dayNum, monthNum, yearNum))
				{
					validFormat = false;
				}
				if (!isMonthValid(monthNum))
				{
					validFormat = false;
				}
				if (!isYearValid(yearNum))
				{
					validFormat = false;
				}
			}
			
			return validFormat;
		}
		catch (NumberFormatException ex)
		{
			return false;
		}
	}
	
	/* Function Name	: isTxtMonthYear
	 * Input Para			: String data	- String to be checked ('MM-YYYY')
	 * Out Para				: Boolean		- True if Valid or False if Invalid
	 */
	public static boolean isTxtMonthYear(String data)
	{
		boolean validFormat = true;
		boolean blnFound = false;
		int monthNum = 0;
		int yearNum = 0;
		
		String[] dateArr = Formatter.split(data.replace(' ', '/').replace('-', '/'),"/");
		
		try
		{
			if (dateArr.length != 2)
			{
				validFormat = false;
			}
			else
			{	
				for (int chkArr = 0; chkArr < dateArr.length; chkArr++)
				{
					if (isInteger(dateArr[chkArr]))
					{
						if (chkArr == 0)
						{
							monthNum = Integer.parseInt(dateArr[chkArr], 10);
						}
						else if (chkArr == 1)
						{
							yearNum = Integer.parseInt(dateArr[chkArr], 10);
						}
					}
					else
					{
						blnFound = false;
						for (int chkStrArr = 0; chkStrArr < MONTH_LONG_NAME.length; chkStrArr++)
						{
							if (dateArr[chkArr].toUpperCase().equals(MONTH_LONG_NAME[chkStrArr].toUpperCase()))
							{
								blnFound = true;
								if (chkArr == 0) monthNum = chkStrArr + 1;
								else if (chkArr == 1)
								{
									yearNum = chkStrArr + 1;
								}
							}
						}
						
						if (!blnFound)
						{
							for (int chkStrArr = 0; chkStrArr < MONTH_SHORT_NAME.length; chkStrArr++)
							{
								if (dateArr[chkArr].toUpperCase().equals(MONTH_SHORT_NAME[chkStrArr].toUpperCase()))
								{
									blnFound = true;
									if (chkArr == 0) monthNum = chkStrArr + 1;
									else if (chkArr == 1) 
									{
										yearNum = chkStrArr + 1;
									}
								}
							}	
						}
					}
				}
				
				if (!isMonthValid(monthNum))
				{
					validFormat = false;
				}
				if (!isYearValid(yearNum))
				{
					validFormat = false;
				}
			}
			
			return validFormat;
		}
		catch (NumberFormatException ex)
		{
			return false;
		}
	}

	public static boolean isDayValid(int dayNum, int monthNum, int yearNum)
	{
		boolean validFormat = true;

		if ((dayNum <= 0) || (dayNum > 31))
		{
			return false;
		}
		if ((dayNum == 31) && ((monthNum == 4) || (monthNum == 6) || (monthNum == 9) || (monthNum == 11)))
		{
			return false;
		}			
		if ((dayNum >= 30) && (monthNum == 2))
		{
			return false;
		}
		if ((dayNum == 29) && (monthNum == 2))
		{
			if (!((yearNum % 4 == 0) && ((yearNum % 100 != 0) || (yearNum % 400 == 0))))
			{
				return false;
			}
		}

		return validFormat;
	}
	
	public static boolean isMonthValid(int monthNum)
	{
		boolean validFormat = true;

		if ((monthNum <= 0) || (monthNum > 12))
		{
			validFormat = false;
		}

		return validFormat;
	}
	
	public static boolean isYearValid(int yearNum)
	{
		boolean validFormat = true;

		if (yearNum == 0)
		{
			validFormat = false;
		}

		return validFormat;
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -