日期:2014-05-16  浏览次数:20360 次

JavaScript正则表达式(六)
/**
 * JavaScript正则表达式 用于表单验证。
 * 包括常用的验证方法,全部使用正则表达式验证。
 * 所有方法都以“reg_”作为前缀,必免与其他脚本函数重名。
 * 
 * @author weishaoxiang
 * @web  http://weishaoxiang.iteye.com
 * @date 2012-01-15
 * @version 1.0
 */

/**
 * execl方法:返回一个类似数组的对象,返回对象[0]就是整个正则表达式所匹配的内容,后续的元素则是各个子正则表达式的匹配内容。
 * 
 * @param {}
 *            reg 正则表达式
 * @param {}
 *            str 字符串
 * @return {} 返回一个类似数组的对象
 */
function reg_execl(reg, str) {
	return reg.exec(str);
}

/**
 * test方法:检查是否能够匹配str,并且返回布尔值以表示是否成功
 * 
 * @param {}
 *            reg 正则表达式
 * @param {}
 *            str 字符串
 * @return {} 返回true或者false
 */
function reg_test(reg, str) {
	return reg.test(str);
}

/**
 * match方法:返回一个类似数组的对象。设置了g修饰符的正则表达式在完成一次成功匹配后不会停止,而是继续找到所有可以匹配到的字符。
 * 
 * @param {}
 *            reg 正则表达式
 * @param {}
 *            str 字符串
 * @return {} 返回一个类似数组的对象
 */
function reg_match(reg, str) {
	return str.match(reg);
}

/**
 * replace方法:将str字符串中匹配reg的部分用“newStr”部分替换,值得注意的是原字符串并不会被修改,而是作为返回值被返回。
 * 
 * @param {}
 *            reg 正则表达式
 * @param {}
 *            str 字符串
 * @param {}
 *            newStr 替换字符串
 * @return {} 替换后的字符串
 */
function reg_replace(reg, str, newStr) {
	return str.replace(reg, newStr);
}

/**
 * search方法:返回正则表达式第一次匹配的位置
 * 
 * @param {}
 *            reg 正则表达式
 * @param {}
 *            str 字符串
 * @return {}
 */
function reg_search(reg, str) {
	return str.search(reg);
}

/**
 * split方法:分割字符串
 * 
 * @param {}
 *            reg 正则表达式
 * @param {}
 *            str 字符串
 * @return {} 返回分割后的数组
 */
function reg_split(reg, str) {
	return str.split(reg);
}

/**
 * 去掉字符串头尾空格
 * 
 * @param {}
 *            str
 * @return {}
 */
function reg_trim(str) {
	return str.replace(/(^\s*)|(\s*$)/g, "");
}

/**
 * 去掉字符串头部空格
 * 
 * @param {}
 *            str
 * @return {}
 */
function reg_Ltrim(str) {
	return str.replace(/(^\s*)/g, "");
}

/**
 * 去掉字符串尾部空格
 * 
 * @param {}
 *            str
 * @return {}
 */
function reg_Rtrim(str) {
	return str.replace(/(\s*$)/g, "");
}

/**
 * 计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)
 * 
 * @param {}
 *            str
 * @return {}
 */
function reg_length(str) {
	return str.replace(/[^\x00-\xff]/g, "xx").length;
}

/**
 * 是否由26个英文字母组成
 * 
 * @param {}
 *            str
 * @return {}
 */
function reg_isLetter(str) {
	var reg = /^[A-Za-z]+$/;
	return reg.test(str);
}

/**
 * 是否由26个小写英文字母组成
 * 
 * @param {}
 *            str
 * @return {}
 */
function reg_isLowerCase(str) {
	var reg = /^[a-z]+$/;
	return reg.test(str);
}

/**
 * 是否由26个大写英文字母组成
 * 
 * @param {}
 *            str
 * @return {}
 */
function reg_isUpperCase(str) {
	var reg = /^[A-Z]+$/;
	return reg.test(str);
}

/**
 * 是否由数字和26个英文字母组成
 * 
 * @param {}
 *            str
 * @return {}
 */
function reg_isLN(str) {
	var reg = /^[A-Za-z0-9]+$/;
	return reg.test(str);
}

/**
 * 是否由数字、26个英文字母或者下划线组成
 * 
 * @param {}
 *            str
 * @return {}
 */
function reg_isLNL(str) {
	var reg = /^\w+$/;
	return reg.test(str);
}

/**
 * 是否纯数字,由0-9组成
 * 
 * @param {}
 *            str
 * @return {}
 */
function reg_isNumber(str) {
	var reg = /^[0-9]*$/;
	return reg.test(str);
}

/**
 * 是否整数
 * 
 * @param {}
 *            str
 * @return {}
 */
function reg_isInt(str) {
	var reg = /^-?\d+$/;
	return reg.test(str);
}

/**
 * 是否浮点数
 * 
 * @param {}
 *            str
 * @return {}
 */
function reg_isFloat(str) {
	var reg = /^(-?\d+)(\.\d+)?/;
	return reg.test(str);
}

/**
 * 是否中文汉字
 * 
 * @param {}
 *            str
 * @return {}
 */
function reg_isChinese(str) {
	var reg = /^[\u4E00-\u9FA5]*$/;
	return reg.test(str);
}
/**
 * 是否双字节字符(包括汉字中文标点符号在内)
 * 
 * @param {}
 *            str
 * @return {}
 */
function reg_isDbChar(str) {
	var reg = /^[^\x00-\xff]*$/;
	return reg.test(str);
}

/**
 * 是否Email地址
 * 
 * @param {}
 *            str
 * @return {}
 */
function reg_isEmail(str) {
	var reg = /^\w+@\w+\.\w+$/;
	return reg.test(str);
}

/**
 * 是否URL地址
 * 
 * @param {}
 *            str
 * @return {}
 */
function reg_isUrl(str) {
	var reg = /[a-zA-z]+:\/\/[\S]*/;
	r