校验手机号、身份证、IP地址、密码强度等常用方法

package cn.ncss.cy.core.utils;

import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.Part;

import org.apache.shiro.crypto.hash.Md5Hash;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.util.StringUtils;
import org.springframework.validation.BindingResult;

public class CommonTool {

	private static final Logger log = LoggerFactory.getLogger(CommonTool.class);

	/**
	 * md5加密
	 * 
	 * @param loginName
	 * @return
	 */
	public final static String md5(String loginName) {
		Md5Hash md5LoginName = new Md5Hash(loginName);
		return md5LoginName.toHex();
	}

	/**
	 * 校验手机号注册
	 * 
	 * @param phone
	 * @return
	 */
	public static boolean validateRegisterPhone(String phone, String regionCode) {
		if (!StringUtils.hasText(phone)) {
			return false;
		}
		if ("886".equals(regionCode)) {
			return phone.matches(StaticValue.DEFAULT_TW_PHONE_PATTERN);
		} else if ("852".equals(regionCode)) {
			return phone.matches(StaticValue.DEFAULT_HK_PHONE_PATTERN);
		} else if ("853".equals(regionCode)) {
			return phone.matches(StaticValue.DEFAULT_MO_PHONE_PATTERN);
		} else {
			return phone.matches(StaticValue.DEFAULT_PHONE_PATTERN);
		}

	}

	/**
	 * 校验手机号
	 * 
	 * @param phone
	 * @return
	 */
	public static boolean validatePhone(String phone) {
		if (!StringUtils.hasText(phone)) {
			return false;
		}
		if (phone.matches(StaticValue.DEFAULT_PHONE_PATTERN) || phone.matches(StaticValue.DEFAULT_TW_PHONE_PATTERN)
				|| phone.matches(StaticValue.DEFAULT_HK_PHONE_PATTERN)
				|| phone.matches(StaticValue.DEFAULT_MO_PHONE_PATTERN)) {
			return true;
		} else {
			return false;
		}
	}

	/**
	 * 校验密码强度
	 * 
	 * @param phone
	 * @return
	 */
	public static boolean validatePassword(String password) {
		if (!StringUtils.hasText(password)) {
			return false;
		}
		return password.matches(StaticValue.DEFAULT_PASSWORD_PATTERN);
	}

	/**
	 * 获取ip地址
	 * 
	 * @param request
	 * @return
	 */
	public static String getIpAddr(HttpServletRequest request) {
		if (request == null) {
			return "unknown";
		}
		String ip = request.getHeader("x-forwarded-for");
		log.info(String.format("ip from x-forwarded-for: %s", ip));
		if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
			ip = request.getHeader("X-Real-IP");
		}
		if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
			ip = request.getHeader("Proxy-Client-IP");
		}
		if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
			ip = request.getHeader("X-Forwarded-For");
		}
		if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
			ip = request.getHeader("WL-Proxy-Client-IP");
		}
		if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
			ip = request.getRemoteAddr();
		}
		return ip;
	}

	/**
	 * 根据GB 11714-1997标准对组织机构代码中的校验位进行校验
	 * 
	 * @param orgCode
	 *            组织机构代码
	 * @return 是否正确的组织机构代码
	 */
	public static boolean checkOrgCode(String orgCode) {
		if (!StringUtils.hasText(orgCode)) {
			return false;
		}
		orgCode = orgCode.replaceAll("-", "");
		orgCode = orgCode.replaceAll("—", "");
		orgCode = orgCode.replaceAll("-", "");
		orgCode = orgCode.replaceAll("-", "");
		if (orgCode.length() != 9 || orgCode.equals("000000000") || orgCode.equals("123456788"))
			return false;
		int chkNum = 0; // 校验数
		int[] factors = { 3, 7, 9, 10, 5, 8, 4, 2 }; // 加权因子
		// 取组织机构代码的八位本体代码为基数,与相应的加权因子相乘后求和,进行校验数的计算
		for (int i = 0; i < 8; i++) {
			char ch = orgCode.charAt(i);
			int num = 0;
			// 获取八位本体代码并转换为相应的数字
			if (ch >= 'A' && ch <= 'Z') {
				num = ch - 'A' + 10;
			} else if (ch >= '0' && ch <= '9') {
				num = ch - '0';
			} else {
				return false; // 含有数字字母以外的字符,直接返回错误
			}
			num = num * factors[i]; // 取Wi本体代码与加权银子对应各位相乘
			chkNum += num; // 乘积相加求和数
		}
		chkNum = chkNum % 11; // 取模数11除和数,求余数
		chkNum = 11 - chkNum; // 以模数11减余数,求校验码数值
		if (chkNum == 11) {
			chkNum = 0; // 校验数为11时直接转换为0
		}

		// 获取校验码,并跟校验数进行比较。校验数为10时候校验码应为“X”
		String chkCode = String.valueOf(orgCode.charAt(8));
		if (chkCode.endsWith(String.valueOf(chkNum)) || (chkCode.equals("X") && chkNum == 10)) {
			return true;
		} else {
			return false;
		}
	}

	/**
	 * 校验工商行政注册码
	 * 
	 * @param number
	 * @return
	 */
	public static boolean checkRegisterNumber(String number) {
		if (number.length() != 15) {
			return false;
		} else if (!isNumeric(number)) {// 判断是否都是数字
			if (number.endsWith("X") && ("NA".equals(number.substring(6, 8)) || "NB".equals(number.substring(6, 8)))) {
				return true;
			}
			return false;
		}
		// 对于此注册码的前六位的校验即:首次登记机关代码从工商行政注册号的编制规则 4.2来看,机关代码就全是地区代码,
		// 所以前六位目前暂无理由校验不合法
		// 最后一位(第十五位)是校验位
		int checkBit = Integer.parseInt(number.substring(14));
		int num = checkNum(10, number.substring(0, 14));
		if ((checkBit + num) % 10 == 1) {
			return true;
		} else {
			return false;
		}
	}

	/**
	 * 检测字符传是否全为数字
	 * 
	 * @param str
	 * @return
	 */
	public static boolean isNumeric(String str) {
		Pattern pattern = Pattern.compile("[0-9]*");
		Matcher isNum = pattern.matcher(str);
		if (!isNum.matches()) {
			return false;
		}
		return true;
	}

	/**
	 * 按照GB/T 17710,MOD 11,10校验公式 最终递归循环得到 P_15 % 11,用于调用处来验证是否正确
	 * 
	 * @param P_num
	 * @param subStr用来递归的子串
	 * @return
	 */
	public static int checkNum(int P_num, String subStr) {
		if ("".equals(subStr)) {// 直到递归无剩余子串,可返回结果
			return P_num % 11;
		}
		int sub_Num = Integer.parseInt(subStr.substring(0, 1));// 每次截取第一位用来处理
		sub_Num = P_num % 11 + sub_Num;
		P_num = (sub_Num % 10 != 0 ? sub_Num % 10 : 10) * 2;
		return checkNum(P_num, subStr.substring(1));// 下一次进入递归的内容则是出去第一位的其余子串
	}

	public static BindingResult validateIdCard(BindingResult bindingResult, String idCardType, String idCard) {
		if (idCardType == null || idCard == null || idCardType.equals("") || idCard.equals("")) {
			bindingResult.rejectValue("idCardType", null, "请选择正确的证件类型");
			return bindingResult;
		}
		if (idCardType.equals("ML")) {
			if (!CommonTool.validateMLcard(idCard)) {
				bindingResult.rejectValue("idCard", null, "请输入正确的证件号码");
				return bindingResult;
			}
		} else if (idCardType.equals("HK")) {
			if (!CommonTool.validateHKCard(idCard)) {
				bindingResult.rejectValue("idCard", null, "请输入正确的证件号码");
				return bindingResult;
			}
		} else if (idCardType.equals("MO")) {
			if (!CommonTool.validateMOCard(idCard)) {
				bindingResult.rejectValue("idCard", null, "请输入正确的证件号码");
				return bindingResult;
			}
		} else if (idCardType.equals("TW")) {
			if (!CommonTool.validateTWCard(idCard)) {
				bindingResult.rejectValue("idCard", null, "请输入正确的证件号码");
				return bindingResult;
			}
		} else if (idCardType.equals("HZ")) {
		} else if (idCardType.equals("QT")) {
		} else {
			bindingResult.rejectValue("idCardType", null, "请输入正确的证件类型");
			return bindingResult;
		}
		return bindingResult;

	}

	/**
	 * 检测身份证
	 * 
	 * @param value
	 * @return
	 */
	public static boolean validateMLcard(String value) {
		int[] weight = new int[] { 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2 };
		// 校验码
		int[] checkDigit = new int[] { 1, 0, 'X', 9, 8, 7, 6, 5, 4, 3, 2 };
		int sum = 0;
		if (value.matches(
				"((11|12|13|14|15|21|22|23|31|32|33|34|35|36|37|41|42|43|44|45|46|50|51|52|53|54|61|62|63|64|65|71|81|82|91)\\d{4})((((19|20)(([02468][048])|([13579][26]))0229))|((20[0-9][0-9])|(19[0-9][0-9]))((((0[1-9])|(1[0-2]))((0[1-9])|(1\\d)|(2[0-8])))|((((0[1,3-9])|(1[0-2]))(29|30))|(((0[13578])|(1[02]))31))))((\\d{3}(x|X))|(\\d{4}))") == true) {
			// 此循环是先取出身份证号码一个一个的取出,然后取出加权因子的数 一个一个的取出  最后算出他们的和 
			for (int i = 0; i < 17; i++) {
				int b = Integer.parseInt(value.substring(i, i + 1));// 取出输入身份证一个一个的号码 然后转化为Integer 
				int a = weight[i];// 取出加权因子的一个一个的数 
				sum = a * b + sum;// 累加求和;
			}
			int mod = sum % 11;
			String idcard = value;
			if (value.contains("x")) {
				idcard = value.replace('x', 'X');
			}
			if (idcard.contains("X")) {
				if (idcard.substring(17, 18).charAt(0) == checkDigit[mod]) {
					return true;
				} else {
					return false;
				}
			} else {

				if (idcard.substring(17, 18).equals(String.valueOf(checkDigit[mod]))) {
					return true;
				} else {
					return false;
				}
			}
		} else {
			return false;
		}
	}

	public static boolean validateHZCard(String idCard) {
		if (idCard == null || idCard.equals("")) {
			return false;
		}
		if (!idCard.matches("^[A-Z]{1,2}[0-9]{6}\\(?[0-9A]\\)?$")) {
			return false;
		}
		return true;
	}

	public static boolean validateHKCard(String idCard) {
		String card = idCard.replaceAll("[\\(|\\)]", "");
		if (card.length() != 8 && card.length() != 9 && idCard.length() != 10) {
			return false;
		}
		if (!idCard.matches("^[A-Z]{1,2}[0-9]{6}\\(?[0-9A]\\)?$")) {
			return false;
		}
		Integer sum = 0;
		if (card.length() == 9) {
			sum = (Integer.valueOf(card.substring(0, 1).toUpperCase().toCharArray()[0]) - 55) * 9
					+ (Integer.valueOf(card.substring(1, 2).toUpperCase().toCharArray()[0]) - 55) * 8;
			card = card.substring(1, 9);
		} else {
			sum = 522 + (Integer.valueOf(card.substring(0, 1).toUpperCase().toCharArray()[0]) - 55) * 8;
		}
		String mid = card.substring(1, 7);
		String end = card.substring(7, 8);
		char[] chars = mid.toCharArray();
		Integer iflag = 7;
		for (char c : chars) {
			sum = sum + Integer.valueOf(c + "") * iflag;
			iflag--;
		}
		if (end.toUpperCase().equals("A")) {
			sum = sum + 10;
		} else {
			sum = sum + Integer.valueOf(end);
		}
		return (sum % 11 == 0) ? true : false;
	}

	public static boolean validateMOCard(String str) {
		String card = str.replaceAll("[\\(|\\)]", "");
		if (card.length() != 8) {
			return false;
		}
		if (str.matches("^[1|5|7][0-9]{6}\\(?[0-9A-Z]\\)?$")) {
			return true;
		}
		return false;
	}

	public static boolean validateTWCard(String str) {
		String card = str.replaceAll("[\\(|\\)]", "");
		if (card.length() != 10) {
			return false;
		}
		if (str.matches("^[a-zA-Z][0-9]{9}$")) {
			return true;
		}
		return false;
	}

	// 判断密码强度
	public static String getLevel(String password) {
		if (password.matches("^\\d+$") || password.matches("^[a-zA-Z]+$")
				|| password.matches("^[-`=\\;',./~!@#$%^&*()_+|{}:\"<>\\[\\]?]+$")) {
			return "LOW";
		} else if (password.matches("^(?!\\d+$)(?![a-zA-Z]+$)[a-zA-Z\\d]+$")
				|| password.matches(
						"^(?![a-zA-Z]+$)(?![-`=\\;',./~!@#$%^&*()_+|{}:\"<>\\[\\]?]+$)[a-zA-Z-`=\\;',./~!@#$%^&*()_+|{}:\"<>\\[\\]?]+$")
				|| password.matches(
						"^(?!\\d+)(?![-`=\\;',./~!@#$%^&*()_+|{}:\"<>\\[\\]?]+$)[\\d-`=\\;',./~!@#$%^&*()_+|{}:\"<>\\[\\]?]+$")) {
			return "MIDDLE";
		} else if (password.matches(
				"^(?![a-zA-z]+$)(?!\\d+$)(?![-`=\\;',./~!@#$%^&*()_+|{}:\"<>\\[\\]?]+$)(?![a-zA-z\\d]+$)(?![a-zA-z-`=\\;',./~!@#$%^&*()_+|{}:\"<>\\[\\]?]+$)(?![\\d-`=\\;',./~!@#$%^&*()_+|{}:\"<>\\[\\]?]+$)[a-zA-Z\\d-`=\\;',./~!@#$%^&*()_+|{}:\"<>\\[\\]?]+$")) {
			return "HIGH";
		}
		return "LOW";
	}

	public static String jsonizeCode(String key, Object value) {
		return String.format("\"%s\":\"%s\",", key, value);
	}

	public static String jsonizeDes(String key, Object value) {
		return String.format("\"%s\":\"%s\"", key, value);
	}

	public static HttpServletResponse setHeader(String downloadType, String fileType, String name,
			HttpServletRequest request, HttpServletResponse response) {
		if ("downloadphysical".equals(downloadType) || "attachment".equals(downloadType)) {
			if (fileType.equals(".pdf")) {
				response.setContentType("application/pdf");
			} else if (fileType.equals(".doc")) {
				response.setContentType("application/msword");
			} else {
				response.setContentType("application/vnd.openxmlformats-officedocument.wordprocessingml.document");
			}
		} else if ("downloadpptx".equals(downloadType)) {
			response.setContentType("application/vnd.ms-powerpoint");
		} else if ("downloadvideo".equals(downloadType)) {
			response.setContentType("video/mpeg");
		} else if ("downloadzip".equals(downloadType)) {
			response.setContentType("application/zip");
		}
		String agent = request.getHeader("USER-AGENT");
		String headerFilename = null;
		try {
			if ((agent != null)
					&& (-1 != agent.indexOf("MSIE") || -1 != agent.indexOf("Trident") || -1 != agent.indexOf("Edge"))) {

				headerFilename = "attachment;filename=" + URLEncoder.encode(name.replace(",", ",") + fileType, "UTF-8");

			} else {

				headerFilename = "attachment;filename="
						+ new String((name.replace(",", ",") + fileType).getBytes("UTF-8"), "ISO-8859-1");

			}
		} catch (UnsupportedEncodingException e) {
			log.error(e.toString());
		}
		response.setHeader("Content-Disposition", headerFilename);
		return response;
	}

	public static void downFile(File file, HttpServletRequest request, HttpServletResponse response) {
		try (InputStream in = new FileInputStream(file); ServletOutputStream os = response.getOutputStream()) {
			byte[] data = new byte[1024];
			int readed = 0;
			while ((readed = in.read(data)) != -1) {
				os.write(data, 0, readed);
			}
			os.flush();
		} catch (Exception e) {
			log.error(e.toString());
		}
	}

	/**
	 * 验证头像
	 * 
	 * @param file
	 * @param bindingResult
	 * @return
	 */
	public static BindingResult validateHeadPortrait(Part file, BindingResult bindingResult) {
		if (file == null || file.getSize() <= 1) {
			bindingResult.rejectValue("fileUri", null, "个人头像文件不能为空");
			return bindingResult;
		}
		if (hasSizeError(file)) {
			bindingResult.rejectValue("fileUri", null, "个人头像文件大小不符合要求");
			return bindingResult;
		}
		String fileName = file.getSubmittedFileName().toLowerCase();
		String fileSuffix = fileName.substring(fileName.lastIndexOf("."));
		if (hasImageFormatError(fileSuffix)) {
			bindingResult.rejectValue("fileUri", null, "个人头像文件格式不符合要求");
			return bindingResult;
		}
		return bindingResult;
	}

	/**
	 * 验证文件大小
	 * 
	 * @param file
	 * @return
	 */
	public static boolean hasSizeError(Part file) {
		if (file.getSize() > StaticValue.TALENT_HEAD_PORTRAIT_MAX_SIZE) {
			return true;
		}
		return false;
	}

	/**
	 * 验证格式
	 * 
	 * @param file
	 * @return
	 */
	public static boolean hasImageFormatError(String fileSuffix) {
		if (fileSuffix.equalsIgnoreCase(".jpg") || fileSuffix.equalsIgnoreCase(".jpeg")
				|| fileSuffix.equalsIgnoreCase(".png") || fileSuffix.equalsIgnoreCase(".gif")) {
			return false;
		}
		return true;
	}

	/**
	 * 验证名片文件大小
	 * 
	 * @param file
	 * @return
	 */
	public static boolean hasSizeErrorCard(Part file) {
		if (file.getSize() > StaticValue.CARD_MAX_SIZE) {
			return true;
		}
		return false;
	}
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
js大全 . 1.1 全是数字.. 3 1.2 限制 期限 不能大于 100 年.. 4 1.3 将日期格式由yyyy-MM-dd,转换为yyyymmdd,以直接比较两个日 期的大小.. 4 1.4 判断字符串是否全部由数字组成. 5 1.5 判断字符串是否全部由字母组成. 6 1.6 对于月和日,如果前面有零,去除,如 01 变为 1 .. 6 1.7 为 1 位的日月在前面补零,如将 1 变为 01 .. 7 1.8 在删除按钮的onclick事件触发.. 8 1.9 对输入控件的内容进行非空检验,如果为空,弹出提示信息.. 10 1.10 检验控件值是否是固定位数的有效数字 11 1.11 所输内容应为字母 12 1.12 过滤掉"'"、"%"、"&"、"/"、"" 13 1.13 删除字符串两侧的空格. 14 1.14 取字符串长度(不包含两端的空格) 14 1.15 清空查询条件.. 16 1.16 价格输入是否合法(99,999.00) 17 1.17 检验货票号为 1 位字母+6 位数字.. 17 1.18 检验起始货票号必须小于截至货票号. 18 1.19 检验查询条件是否为空,为空则提示"查询条件不能为空!" 19 1.20 检验是不是最短位数的数字,用于模糊查询. 20 1.21 输入为Decimal格式的数,且小数点前后都不能超过规定的位数 20 1.22 电话号码校验(只能为横线—、()、或数字) . 21 1.23 检测输入是否为正整数数字,如果结果为非给出相应提示. 22 1.24 避免多次提交页面 在jsp中嵌入该文件,在每个jsp页面的提交语23 1.25 检查EMail格式 23 1.26 电话号码由数字和-组成 24 1.26 检验输入的日期yyyy-MM-dd 27 1.27 去掉界面上开头的空格,过滤掉"'" 和""" . 33 1.29 去掉汉字间空格. 35 1.30 大小写转换 36 1.31 过滤掉"'"和""" . 36 1.32 清空查询条件.. 37 1.33 过滤掉"'"和"""和空格. 37 1.34 操作员代码为 7 位数字,密码最少为 4 位 .. 38 1.35 身份证为 15 或 18 位数字或字母 38 1.36 检验输入的时间段,日期格式yyyy-MM-dd 39 1.37 检验输入的时间段,日期格式yyyy-MM-dd 41 1.39 检查EMail格式是否正确.. 47 1.40 电话号码校验(只能为下划线—、()、或数字) 49 1.41 所输内容应为字母 50 1.41 所输内容不能非空 50 1.42 价格输入是否合法(99,999.00) 51 1.43 价格输入是否合法(99,999.00) 52 1.44 判断文本内容是否少于 2 个汉字/字符(js中汉字和字符占位一 样).. 53 1.45 检测输入是否只有字母或数字. 53 1.46 检测输入是否只有数字或不详,且输入数值不能过大(不能超过 32767).. 54 1.47 检测输入是否为数字.. 55 1.48 监测输入是否为数字,且所输入数值不能过大(不能超过 5 位 32767).. 56 1.49 检测输入是否为整形数字,且所输数值不能过大(不能超过 10 位 2147483647). 57 1.52 输入为Decimal格式的数,且小数点前后都不能超过规定的位数 /************************************ .. 59 1.53 可以为负数的数字,数值不能超过 5 位 32767 . 60 1.54 险情报告编号为四位年份加三位数字. 61 1.55 检验度数控制值是否是数字,并且小于或等于 180; /************************************ .. 62 1.56 删除字符串两侧的空格,返回的是删除两侧空格的字符串. 63 1.57 打开模式窗口,窗口居中 65 1.59 检验输入的时间段,日期格式yyyy-MM-dd 67 1.60 检验输入的日期yyyy-MM-dd 69 1.61 用下拉框显示月、日,日下拉框根据年月确定 73 1.62 检验租赁合同号为 4 位年份+2 位月份+本月合同的顺序号 2 位 75 1.63 用于多行校验校验每一行,每一列值是否为空,传入的必须是 . 76 1.64 检查某列得多值中是否存在重复值.. 79 1.65 检查某列得多值与某一值得比较是否相同,例如多个到站路局与 一个发站路局是否相同 80 1.66 检查两多值列是否相同,例如同一行的装车路局是否与卸车站所 属路局是否相同 80 1.67 检查箱数与组数. 81 1.68 检查箱数与组数. 82 1.69 检查箱数与组数. 84 1.70 检查单列多值不能超过一定得长度.. 85 1.71 取字符串长度(不包含两端的空格 . 86 1.72 向表格中添加一行 86 1.73 将添加的输入框元素和Validator进行绑定。.. 89 1.74 根据标签展示的 的validator属性获取校验器类名(DecimalValidator) 91 1.75 删除一行. 92 1.76 根据箱型,校验箱数与组数的值是否符合规定 93 1.77 删除字符串两侧的空格. 95 1.78 检验单个集装箱箱号为 4 位字母+7 位数字. 95 1.79 检验多个集装箱箱号为 4 位字母+7 位数字. 97 1.80 检验单个集装箱箱号为'TBJU'+7 位数字用于租赁部分的箱号校验 .. 101 1.86 判断字符串是否全部由字母组成. 105 1.88 为 1 位的日月在前面补零,如将 1 变为 01 .. 107 1.90 检查EMail格式. 107 1.91 对输入控件的内容进行非空检验,如果为空,弹出提示信息. 109 1.92 检验控件值是否是固定位数的有效数字. 110 1.93 所输内容应为字母. 111 1.94 过滤掉"'"、"%"、"&"、"/"、"" . 112 1.95 取字符串长度(不包含两端的空格) . 113 1.96 将金额转化成按千分位的显示格式 114 1.97 清空查询条件 115 1.98 价格输入是否合法(99,999.00). 115 1.99 检验货票号为 1 位字母+6 位数字 116 2.00 检验起始货票号必须小于截至货票号.. 117 2.01 检验查询条件是否为空,为空则提示"查询条件不能为空!" . 118 2.02 检验是不是最短位数的数字,用于模糊查询.. 118 2.03 输入为Decimal格式的数,且小数点前后都不能超过规定的位数 .. 119 2.04 电话号码校验(只能为横线?、()、或数字) . 120 2.05(1)电话号码由数字和-组成 120 (2)电话号码为 7 到 13 位 . 120 (3)13 开头的头的手机号码必须为 11 位 120 2.06 检测输入是否为正整数数字,如果结果为非给出相应提示.. 121 2.07 避免多次提交页面 在jsp中嵌入该文件,在每个jsp页面的提交语句 前执行该方法.. 121 2.08 检查EMail格式. 122 2.09 电话号码由数字和-组成. 123 2.10 检验IP地址 . 124 2.11 校验忽略样式内容后文本域中的内容是否为空//校验忽略样式内容 后文本域中的内容是否为空.. 124 2.12 计算天数差的函数. 125 2.13 把结束日期月份加上月末日期.. 125 2.14 检验输入的日期yyyy-MM 126
/**//* *JavaScript Document * <p>タイトル: JS常用処理函数</p> * <p>説明: JS常用処理函数</p> * <p>著作権: Copyright (c) 2007-4-30</p> * <p>会社: 杭州恒生電子株式会社</p> * @担当者: 林顔双 * @version 1.0 * 由于本人日语能力有限及时间仓促没有写日文注释中文部门可能会出现乱码现象 * 在GB2312编码格式下可正常显示此文档,代码编写过程难免有错误,错误之处欢迎指正 * ******函数説明****** *   * isEmail(emailStr) //邮件校验,通过校验返回ture,否则返回false * isIp(strIp) //IP地址校验,输入正确的IP地址返回ture,否则返回false * isTelphoneNum(telNum) //电话号码校验,正确的电话号码(如0571-1234567[8] 010-1234567[8] )则返回ture,否则返回false * isMobilephoneNum(mobileNum) //手机号码校验,正确的手机号码(如:13800571506 013800571505)则返回ture,否则返回false * isDigital(str) //纯数字验证输入,输入为纯数字则返回ture,否则返回false * card(id) //18位身份证验证,输入正确的号码返回ture,否则返回false * matchPattern(value,mask) //自定义规则,mask为正确的正则表达式,返回通过自定义验证的字符串 * isEnglish(name) //判断是否为英文,正确返回ture,否则返回false * isChinese(name) //判断是否为中文,正确返回 ture,否则返回false * contain(str,charset) //非法字符判断,str中有charset则返回ture, * testSelect() //选中文本框或文本域文本,在input位置加上 onClick/onFocus="textSelect();" 即可 * textOnly() //只允许输入数字 字母 下划线,在input位置加上 onkeypress="textOnly()" 即可 * isURL(URL) //判断URL,正确的URL返回true,否则返回false * isDate(date) //判断是否为短日期(如:2003-(/)12-(/)05),正确返回,否则返回false * isTime(time) //判断是否为短时间(如:HH:MM:SS) * enterToTab() //在表单元素中除button外,按回车键模拟TAB功能 * enterTOSubmit(name) //在填写表单时按回车键提交表单,name为sumbit控件名 * isFloat(float,index) //判断是否为浮点数,并且小数点后面为index位,正确返回true * trimFullSpace(strIn) //返回去前后全角半角空格后的字符串 * //校验密码复杂度,密码由数字,大小写字母,特殊字符中的任意三种组合,通过则返回true * checkPassWord(passWord,maxLen) //由三个函数组成checkPassWord(),charMode(),bitTotal() * maxLength(strin,maxLen) //判断字符最大长度,如果strin的长度不大于maxLen返回tur * minLength(strin,minLen) //判断字符最小长度,如果的长度不小于minLen返回ture * isAccount(str) //判断用户名合法性(字母 数字式下划先组成且只能以字母开头,且长度最小为6位),合法返回true,否则返回false * getChineseNum(obstring) //取得字符串中中文字的个数 * isInteger(str) //判断输入的字符是否为Integer类型,是则返回true,否则返回false * isDouble(str) //判断输入的字符是否为Double类型,是则返回true,否则返回false */ //*******************************************************************

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值