/** * 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]*/; return reg.test(str); } /** * 是否href网络链接 * * @param {} * str * @return {} */ function reg_isHref(str) { var reg = /(h|H)(r|R)(e|E)(f|F) *= *('|")?(\w|\\|\/|\.)+('|"| *|>)?/; return reg.test(str); } /** * 是否src图片链接 * * @param {} * str * @return {} */ function reg_isSrc(str) { var reg = /(s|S)(r|R)(c|C) *= *('|")?(\w|\\|\/|\.)+('|"| *|>)?/; return reg.test(str); } /** * 是否IP地址 * * @param {} * str * @return {} */ function reg_isIP(str) { var reg = /\d+\.\d+\.\d+\.\d+/; return reg.test(str); } /** * 是否手机号码(以1开头,11位数字) * * @param {} * str * @return {} */ function reg_isPhone(str) { var reg = /^[1][0-9]{10}$/; return reg.test(str); } /** * 是否中国电话号码验证: 匹配形式如:0511-4405222 或者021-87888822 或者 021-44055520-555 * 或者(0511)4405222 * * @param {} * str * @return {} */ function reg_isTelephone(str) { var reg = /^(\(\d{3,4}\)|\d{3,4}-)?\d{7,8}(-\d{3})*$/; return reg.test(str); } /** * 是否身份证号(15位或18位) * * @param {} * str * @return {} */ function reg_isCard(str) { var reg = /^(\d{15}|\d{17}([0-9xX]))$/; return reg.test(str); } /** * 是否中国邮政编码(6位) * * @param {} * str * @return {} */ function reg_isPostalCode(str) { var reg = /^[0-9]{6}$/; return reg.test(str); } /** * 是否腾讯QQ号 * * @param {} * str * @return {} */ function reg_isQQ(str) { var reg = /[1-9][0-9]{4,}/; return reg.test(str); } /** * 是否一年的12个月 * * @param {} * str * @return {} */ function reg_isMonth(str) { var reg = /^(0?[1-9]|1[0-2])$/; return reg.test(str); } /** * 是否一个月的31天 * * @param {} * str * @return {} */ function reg_isDay(str) { var reg = /^((0?[1-9])|((1|2)[0-9])|30|31)$/; return reg.test(str); } /** * 是否短日期格式 * * @param {} * str * @return {} */ function reg_isDateShort(str) { var reg = /^(\d{4})(-|\/)(\d{1,2})\2(\d{1,2})$/; return reg.test(str); } /** * 是否长日期格式 * * @param {} * str * @return {} */ function reg_isDateLong(str) { var reg = /^(\d{4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/; return reg.test(str); } /** * 是否十六进制值 * * @param {} * str * @return {} */ function reg_isHex(str) { var reg = /^#?([a-f0-9]{6}|[a-f0-9]{3})$/; return reg.test(str); }
?