javascript正则表达式代码
/**
* 描述:简单的验证,可以继续扩展
*/
var utils = {
/*
* 版本号,没有什么作用
*/
Version : '0.0.1',
/*
* 用途:检查输入字符串是否只由英文字母和数字和下划线组成 输入: s:字符串 返回: 如果通过验证返回true,否则返回false
*/
isNumberOr_Letter : function(s) {// 判断是否是数字或字母
var regu = "^[0-9a-zA-Z\_]+$";
var re = new RegExp(regu);
if (re.test(s)) {
return true;
} else {
return false;
}
},
/*
* 用途:检查输入对象的值是否符合E-Mail格式 输入:str 输入的字符串 返回:如果通过验证返回true,否则返回false
*/
isEmail : function(str) {
var myReg = /^[-_A-Za-z0-9]+@([_A-Za-z0-9]+\.)+[A-Za-z0-9]{2,3}$/;
if (myReg.test(str))
return true;
return false;
},
/*
* 用途:检查输入手机号码是否正确 输入: s:字符串 返回: 如果通过验证返回true,否则返回false
*/
checkMobile : function(s) {
var regu = /^[1][0-9][0-9]{9}$/;
var re = new RegExp(regu);
if (re.test(s)) {
return true;
} else {
return false;
}
},
/*
* 用途:检查输入字符串是否是数字 输入: str:字符串 返回: 如果通过验证返回true,否则返回false
*/
isNumber : function(str) {
var reg = /^\d+$/;
if (reg.test(str))
return true;
else
return false;
},
/*
* 用途:检查输入字符串是否符合时间格式(时:分:秒),格式:00:02:04 输入: time:字符串 返回: 如果通过验证返回true,否则返回false
*/
isTime : function(time) {
var regex = /^[0-2]{1}[0-9]{1}:[0-5]{1}[0-9]{1}:[0-5]{1}[0-9]{1}$/;
if (!regex.test(time)) {
return false;
}
var hour = time.substring(0, 2);
var minute = time.substring(3, 5);
var second = time.substring(6);
if (hour > 23 || hour < 0) {
return false;
}
if (minute > 60 || minute < 0) {
return false;
}
if (second > 60 || second < 0) {
return false;
}
return true;
},
/*
* 用途:检查输入字符串是否符合正整数格式 输入: s:字符串 返回: 如果通过验证返回true,否则返回false
*/
isNumber : function(s) {
var regu = "^[0-9]+$";
var re = new RegExp(regu);
if (s.search(re) != -1) {
return true;
} else {
return false;
}
},
/*
* 用途:检查输入字符串是否符合国内固话或者传真格式 输入: s:字符串 格式例如:020-87110252 返回:
* 如果通过验证返回true,否则返回false
*/
isTel : function(s) {
var reg = /^((0\d{2,3})-)?(\d{7,8})(-(\d{3,}))?$/;
if (!reg.test(s))
return false
return true
},
/*
* 用途:检查输入字符串是否符合身份证格式 输入: s:字符串 返回: 如果通过验证返回true,否则返回false
*/
isIDno : function(strIDno) {
var aCity = {
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 : "国外"
};
var iSum = 0;
var info = "";
// var strIDno = obj.value;
var idCardLength = strIDno.length;
if (!/^\d{17}(\d|x)$/i.test(strIDno) && !/^\d{15}$/i.test(strIDno)) {
// alert("非法身份证号");
return false;
}
// 在后面的运算中x相当于数字10,所以转换成a
strIDno = strIDno.replace(/x$/i, "a");
if (aCity[parseInt(strIDno.substr(0, 2))] == null) {
// alert("非法地区");
return false;
}
if (idCardLength == 18) {
sBirthday = strIDno.substr(6, 4) + "-"
+ Number(strIDno.substr(10, 2)) + "-"
+ Number(strIDno.substr(12, 2));
var d = new Date(sBirthday.replace(/-/g, "/"))
if (sBirthday != (d.getFullYear() + "-" + (d.getMonth() + 1) + "-" + d
.getDate())) {
// alert("非法生日");
return false;
}
for ( var i = 17; i >= 0; i--)
iSum += (Math.pow(2, i) % 11)
* parseInt(strIDno.charAt(17 - i), 11);
if (iSum % 11 != 1) {
// alert("非法身份证号");
return false;
}
} else if (idCardLength == 15) {
sBirthday = "19" + strIDno.substr(6, 2) + "-"
+ Number(strIDno.substr(8, 2)) + "-"
+ Number(strIDno.substr(10, 2));
var d = new Date(sBirthday.replace(/-/g, "/"))
var dd = d.getFullYear().toString() + "-" + (d.getMonth() + 1)
+ "-" + d.getDate();
if (sBirthday != dd) {
// alert("非法生日");
return false;
}
}
return true;
},
/*
* 用途:检查输入字符串是否符合邮政编码格式 输入: s:字符串 返回: 如果通过验证返回true,否则返回false
*/
isZipcode : function(str) {
var reg = /^\d+$/;
if (!reg.test(str))
return false;
if (str.length != 6) {
// alert("邮政编码长度必须是6位");
return false;
}
return true;
},
/*
* 用途:检查输入字符串是否符合金额格式 格式定义为带小数的正数,小数点后最多三位 输入: s:字符串 返回:
* 如果通过验证返回true,否则返回false
*/
isMoney : function(s) {
var regu = "^[0-9]+[\.][0-9]{0,3}$";
var re = new RegExp(regu);
if (re.test(s)) {
return true;
} else {
return false;
}
},
/*
* 用途:检查输入字符串是否只由汉字组成 输入: s:字符串 返回: 如果通过验证返回true,否则返回false
*/
isZh : function(str) {
var reg = /^[\u4e00-\u9fa5]+$/;
if (reg.test(str))
return true;
return false;
},
/*
* 用途:检查输入对象的值是否符合整数格式 输入:str 输入的字符串 返回:如果通过验证返回true,否则返回false
*/
isInteger : function(str) {
var regu = /^[-]{0,1}[0-9]{1,}$/;
return regu.test(str);
},
/*
* 用途:检查输入字符串是否只由汉字、字母、数字组成 输入: value:字符串 返回: 如果通过验证返回true,否则返回false
*/
isChinaOrNumbOrLett : function(s) {// 判断是否是汉字、字母、数字组成
var regu = "^[0-9a-zA-Z\u4e00-\u9fa5]+$";
var re = new RegExp(regu);
if (re.test(s)) {
return true;
} else {
return false;
}
},
/*
* 用途:校验ip地址的格式 输入:strIP:ip地址 返回:如果通过验证返回true,否则返回false;
*/
isIP : function(strIP) {
if (isNull(strIP))
return false;
var re = /^(\d+)\.(\d+)\.(\d+)\.(\d+)$/g // 匹配IP地址的正则表达式
if (re.test(strIP)) {
if (RegExp.$1 < 256 && RegExp.$2 < 256 && RegExp.$3 < 256
&& RegExp.$4 < 256)
return true;
}
return false;
},
/*
* 用途:检查输入字符串是否只由英文字母和数字组成 输入: s:字符串 返回: 如果通过验证返回true,否则返回false
*/
isNumberOrLetter : function(s) {// 判断是否是数字或字母
var regu = "^[0-9a-zA-Z]+$";
var re = new RegExp(regu);
if (re.test(s)) {
return true;
} else {
return false;
}
},
/*
* 用途:去掉空格操作 一系列 输入:s:字符串 返回: 字符串
*/
trim : function(str) {
return str.replace(/(^\s*)|(\s*$)/g, "");
},
//去除左边空格
ltrim : function(str) {
return str.replace(/(^\s*)/g, "");
},
//去除右边空格
rtrim : function(str) {
return str.replace(/(\s*$)/g, "");
},
//去除全部空格
trim_string : function(str) {
return str.replace(/(^\s*)|(\s*$)/g, "");
}
};
//利用正则表达式判断输入的数是否为0---9之间
function regIsDigit(fData)
{
var reg = new RegExp("^[0-9]$");
return (reg.test(fData));
}
//判断是否是数值
function regIsNumber(fData)
{
var reg = new RegExp("^[-]?[0-9]+[\.]?[0-9]+$");
return reg.test(fData)
}
function isNumber(age){
if(regIsNumber(age)){
alert("您输入的年龄是合法的");
document.getElementById("ageInf1o").innerText(' 您输入的年龄是合法的! ');
}else{
alert("您输入的年龄是不合法的");
document.getElementById("ageInf1o").innerText("<font color='red'> 您输入的年龄是不合法的! </font>");
}
}
//验证Email是否正确
function regIsEmail(fData)
{
var reg = new RegExp("^[0-9a-zA-Z]+@[0-9a-zA-Z]+[\.]{1}[0-9a-zA-Z]+[\.]?[0-9a-zA-Z]+$");
return reg.test(fData);
}
//判断手机号是否正确
function regIsPhone(fData)
{
var reg = /^(\+86)?(1[0-9]{10})$/;
return reg.test(fData);
}
//验证用户名只能输入5-20个以字母开头、可带数字、“_”、“.”的字串
function isRegisterUserName(s)
{
var patrn=/^[a-zA-Z]{1}([a-zA-Z0-9]|[._]){4,19}$/;
if (!patrn.exec(s))
return false ;
return true ;
}
//验证简单日期的合法性(年-月-日)
function regIsDate(date){
var regex =/^([1-2]\d{3})[\/|\-](0?[1-9]|10|11|12)[\/|\-]([1-2]?[0-9]|0[1-9]|30|31)$/;
return regex.test(date);
}
//验证密码:以字母开头、数字字母组成,长度在6-12之间
function isRegistPassword(s)
{
var reg = new RegExp("^[a-zA-Z]{1}[0-9a-zA-Z]{5,11}$");
if(reg.test(s)){
return true;
}
return false;
}