js校验
我们在使用js的时候,通常要使用到校验,譬如校验邮箱,校验手机号码等相关信息,下面的js文件提供了众多的js校验方法;大家可以参考进行使用
var validates = {
/*
* 用途:检查输入字符串是否只由英文字母和数字和下划线和汉字组成,且必须以字母或汉字开头
* 输入: s:字符串 返回: 如果通过验证返回true,否则返回false
* 2010-09-08
*/
isNumberOr_OrLetterFirst : function(s) {
// var regu = "/^[a-zA-Z0-9\_]+$";
//var regu = "^[0-9a-zA-Z\_]+$";
var re = new RegExp(/^[a-zA-Z][a-zA-Z0-9_]*$/);
if (re.test(s)) {
return true;
} else {
return false;
}
},
"isNumberOr_OrLetterFirstText" :"只能输入英文字母、数字、下划线_,且以字母开头 例如:aads_73736jehwury_",
"daterange" : function(val, field) {
if(!val){
return true;
}
var date = field.parseDate(val);
if (!date) {
field.vtypeText = val+' 是无效的日期 - 必须符合格式Y-m-d';
return false;
}
if (field.startDateField
&& (!this.dateRangeMax || (date.getTime() != this.dateRangeMax
.getTime()))) {
var start = Ext.getCmp(field.startDateField);
start.setMaxValue(date);
start.validate();
this.dateRangeMax = date;
} else if (field.endDateField
&& (!this.dateRangeMin || (date.getTime() != this.dateRangeMin
.getTime()))) {
var end = Ext.getCmp(field.endDateField);
end.setMinValue(date);
end.validate();
this.dateRangeMin = date;
}
return true;
},
//做两个字段值大小之间的判断,适用于form表单,也适用于batchGrid
"compareTwoValue" : function(val,field){
if(!val){
return true;
}
if(field.startField){//说明填的是下线值
var start='';
if(field.gridId){//在batchGrid中需要配置gridId 和celldblclick事件将当前的record记录上
var record = Ext.getCmp(field.gridId).returnRecord();
if(record){
start = record.get(field.startFieldName);//batchgrid中对应的列的dataIndex的值
}
}else{
start = Ext.getCmp(field.startField).getValue();//适用于form表单的校验
}
var end = val;
if(start!='' && end<start){
return false;
}else{
//如果是在form里,为了处理那种不改标红项的值,而改没标红的值的情况
if(!field.gridId){
Ext.getCmp(field.startField).clearInvalid();
}
}
}else if(field.endField){//说明填的是上线值
var start = val;
var end = '';
if(field.gridId){
var record = Ext.getCmp(field.gridId).returnRecord();
if(record){
end = record.get(field.endFieldName);
}
}else{
end = Ext.getCmp(field.endField).getValue();
}
if(end!='' && end<start){
return false
}else{
//如果是在form里,为了处理那种不改标红项的值,而改没标红的值的情况
if(!field.gridId){
Ext.getCmp(field.endField).clearInvalid();
}
}
}
return true;
},
"compareTwoValueText" : "后者的值不能小于前者",
/**
* 特殊字符校验的正则表达式---专供煤炭产品定义使用,如果别的名称允许输入“/”
* 那么也可以使用这个函数
* @param {} str
* @return {Boolean}
*/
"isSpacailCharForSpecialName" : function(str) {
if (str == "")
return true;
var forbidChar = new Array(",",","," ", "\\", "'","¥","‘","’", "@","!","!","%", "\"", "?", "&", "#",
"^", "》","《","<",">","*","[","]","(",")","(",")","{","}","、","。",".",
"`","~", "+","=", "$",";",";",":",":","|");
for (var i = 0; i < forbidChar.length; i++) {
if (str.indexOf(forbidChar[i]) >= 0) {
return false;
}
}
return true;
},
"isSpacailCharForSpecialNameText" : "输入的内容含有特殊字符",
/**
* 控制不能输入'"','\''字符,因为拼接树的时候会出现解析错误
* @param {} str
* @return {Boolean}
*/
"isQuotationMarks" : function(str) {
if (str == "")
return true;
var forbidChar = new Array( "\"", "'");
for (var i = 0; i < forbidChar.length; i++) {
if (str.indexOf(forbidChar[i]) >= 0) {
return false;
}
}
return true;
},
"isQuotationMarksText" : "输入的内容含有特殊字符英文单引号(')或者英文双引号(\")",
/**
* 控制不能输入'"','\'',"\n"字符,因为拼接树的时候会出现解析错误
* @param {} str
* @return {Boolean}
* lys
*/
"isQuotationMarksNew" : function(str) {
if (str == "")
return true;
var forbidChar = new Array( "\"", "'","\n");
for (var i = 0; i < forbidChar.length; i++) {
if (str.indexOf(forbidChar[i]) >= 0) {
return false;
}
}
return true;
},
"isQuotationMarksNewText" : "输入的内容含有特殊字符英文单引号(')、回车或者英文双引号(\")",
/**
* 控制不能输入'&',在用户所在地煤样抽查匹配中会出现解析错误
* @date : 2012-02-15
* @param {} str
* @return {Boolean}
*/
"isSpacailMark" : function(str) {
if (str == "")
return true;
var forbidChar = new Array("&");
for (var i = 0; i < forbidChar.length; i++) {
if (str.indexOf(forbidChar[i]) >= 0) {
return false;
}
}
return true;
},
"isSpacailMarkText" : "输入的内容含有&特殊字符",
/**
* 特殊字符校验的正则表达式
* @param {} str
* @return {Boolean}
*/
"isSpacailChar" : function(str) {
if (str == "")
return true;
var regu = "^`/!@#$%^& ',.*():{}[] <>";
var re = new RegExp(regu);
return re.test(str);
},
"isSpacailCharText" : "输入的内容含有特殊字符",
/*
* 用途:检查输入字符串是否为空或者全部都是空格 输入:str 返回: 如果全是空返回true,否则返回false
*/
"isNull" : function(str) {
if (str == "")
return true;
var regu = "^[ ]+$";
var re = new RegExp(regu);
return re.test(str);
},
"isNullText":"该单元格不能为空或者内容全是空格",
/**
* @param {} str
* @return {Boolean}
*/
"isNull2" : function(str) {
if (str == "")
return true;
var regu = "^[ ]+$";
var re = new RegExp(regu);
if (re.test(str)) {
return false;
} else {
return true;
}
},
"isNull2Text":"该单元格不能为空或者内容全是空格",
/*
* 用途:检查输入对象的值是否符合整数格式 输入:str 输入的字符串 返回:如果通过验证返回true,否则返回false
*
*/
"isInteger" : function(str) {
if(str==""){
return true;
}
var regu = '/^[-]{0,1}[0-9]{1,}$/';
return regu.test(str);
},
"isIntegerText":"请输入整数\n 例如:-1,2,59",
/*
* 用途:检查输入字符串是否符合正整数格式 输入: s:字符串 返回: 如果通过验证返回true,否则返回false
*
*/
"isNumber" : function(s) {
if(s==""){
return true;
}
var regu = "^[0-9]+$";
var re = new RegExp(regu);
if (s.search(re) != -1) {
return true;
} else {
return false;
}
},
"isNumberText":"请输入正整数\n 例如:1,2,25",
/*
*用途:检查输入字符串是否是整数或小数,可以是负数 输入: s:字符串 返回: 如果通过验证返回true,否则返回false
*
*/
"isDouble":function(s){
if(s==""){
return true;
}
var re = new RegExp(/^-?\d*\.?\d*$/);
if(re.test(s)){
return true;
}else{
return false;
}
},
"isDoubleText":"请输入整数或小数\n 例如: 1,2,2.25,0.78",
/**
* 只能输入小数点后4位非负小数
* @param {} s
* @return {Boolean}
*/
"isDouble4":function(s){
if(s==""){
return true;
}
var re = new RegExp(/^[0-9]+([.]{1}[0-9]{1,4})?$/);
if(re.test(s)){
return true;
}else{
return false;
}
},
"isDouble4Text":"只能输入最多含4位小数的数字",
/**
* 只能输入小数点后12位非负小数
* @param {} s
* @return {Boolean}
*/
"isDouble12":function(s){
if(s==""){
return true;
}
var re = new RegExp(/^[0-9]+([.]{1}[0-9]{1,12})?$/);
if(re.test(s)){
return true;
}else{
return false;
}
},
"isDecimalValue":function(s){//
if(s==""){
return true;
}
var re = new RegExp(/^0\.([1-9][0-9]?|[0-9][1-9])$/);
if(re.test(s)){
return true;
}else{
return false;
}
},
"isDecimalValueText":"只能输入最多含2位小数的数字",
"isDouble12Text":"只能输入最多含12位小数的数字",
/**
* 只能输入小数点后2位非负小数
* @param {} s
* @return {Boolean}
*/
"isDouble2":function(s){
if(s==""){
return true;
}
var re = new RegExp(/^[0-9]+([.]{1}[0-9]{1,2})?$/);
if(re.test(s)){
return true;
}else{
return false;
}
},
"isDouble2Text":"只能输入最多含2位小数的数字",
/*
* 用途:检查输入字符串是否是带小数的数字格式,可以是负数 输入: s:字符串 返回: 如果通过验证返回true,否则返回false
*
*/
"isDecimal" : function(str) {
if(str==""){
return true;
}
if (isInteger(str))
return true;
var re = '/^[-]{0,1}(\d+)[\.]+(\d+)$/';
if (re.test(str)) {
if (RegExp.$1 == 0 && RegExp.$2 == 0)
return false;
return true;
} else {
return false;
}
},
"isDecimalText":"请输入小数 \n 例如:-1.344,5.9939",
/*
* 用途:检查输入字符串是否是非负数字格式,输入: s:字符串 返回: 如果通过验证返回true,否则返回false
*
*/
"isDecimalNotNavigate" : function(str) {
if(str==""){
return true;
}
var regu = '^\\d+(\\.\\d+)?$';
// var regu = '^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$';
var re = new RegExp(regu);
return re.test(str);
},
"isDecimalNotNavigateText":"请输入非负数 \n 例如:1.344,5.9939",
/*
* 用途:检查输入对象的值是否符合端口号格式 输入:str 输入的字符串 返回:如果通过验证返回true,否则返回false
*
*/
isPort : function(str) {
if(str==""){
return true;
}
return (str>0 && str < 65536);
},
"isPortText" : "端口号只能是大于0小于65536的正整数",
/*
* 用途:检查输入对象的值是否符合E-Mail格式 输入:str 输入的字符串 返回:如果通过验证返回true,否则返回false
*
*/
"isEmail" : function(str) {
if(str==""){
return true;
}
var myReg = /^[-_A-Za-z0-9]+@([_A-Za-z0-9]+\.)+[A-Za-z0-9]{2,3}$/;
if (myReg.test(str))
return true;
return false;
},
"isEmailText":"请输入正确的邮件格式\n 例如:ningJing@163.com",
/*
* 用途:检查输入字符串是否符合金额格式 格式定义为带小数的正数,小数点后最多三位 输入: s:字符串 返回:
* 如果通过验证返回true,否则返回false
*
*/
"isMoney" : function(s) {
if(s==""){
return true;
}
var regu = "^[0-9]+[\.][0-9]{0,3}$";
var re = new RegExp(regu);
if (re.test(s)) {
return true;
} else {
return false;
}
},
"isMoneyText":"只能输入带三位的小数\n 例如:223.777",
/*
* 用途:检查是否是oracle关键字
*/
"isOracle_KeyWords":function(str){
var keywords = "ACCESS ADD ALL ALTER AND ANY AS ASC AUDIT BETWEEN BY CHAR"+
"CHECK CLUSTER COLUMN COMMENT COMPRESS CONNECT CREATE CURRENT"+
"DATE DECIMAL DEFAULT DELETE DESC DISTINCT DROP ELSE EXCLUSIVE"+
"EXISTS FILE FLOAT FOR FROM GRANT GROUP HAVING IDENTIFIED"+
"IMMEDIATE IN INCREMENT INDEX INITIAL INSERT INTEGER INTERSECT"+
"INTO IS LEVEL LIKE LOCK LONG MAXEXTENTS MINUS MLSLABEL MODE"+
"MODIFY NOAUDIT NOCOMPRESS NOT NOWAIT NULL NUMBER OF OFFLINE ON"+
"ONLINE OPTION OR ORDER PCTFREE PRIOR PRIVILEGES PUBLIC RAW"+
"RENAME RESOURCE REVOKE ROW ROWID ROWNUM ROWS SELECT SESSION"+
"SET SHARE SIZE SMALLINT START SUCCESSFUL SYNONYM SYSDATE TABLE"+
"THEN TO TRIGGER UID UNION UNIQUE UPDATE USER VALIDATE VALUES"+
"VARCHAR VARCHAR2 VIEW WHENEVER WHERE WITH";
var ts = keywords.split(" ");
for(var i=0;i<ts.length;i++ ){
if(ts[i]==str.toUpperCase()){
return false;//已存在该字段
}else{
return true;
}
}},
"isOracle_KeyWordsText":"该字段一再列表中存在,请换个名再试",
/*
* 用途:检查输入字符串是否只由英文字母和数字和下划线组成 输入: s:字符串 返回: 如果通过验证返回true,否则返回false
*
*/
"isNumberOr_Letter" : function(s) {// 判断是否是数字或字母
if(s==""){
return true;
}
var regu = "^[0-9a-zA-Z\_]+$";
var re = new RegExp(regu);
if (re.test(s)) {
return true;
} else {
return false;
}
},
"isNumberOr_LetterText":"只能输入英文字母、数字和下划线\n 例如:1213aads_73736jehwury",
/*
* 用途:检查输入字符串是否只由英文字母和数字和下划线组成 输入: s:字符串 返回: 如果通过验证返回true,否则返回false
*/
"isNumberOr_Letter3" : function(s) {// 判断是否是数字或字母
if(s==""){
return true;
}
var regu = "^[0-9a-zA-Z\_\/\(\)]+$";
var re = new RegExp(regu);
if (re.test(s)) {
return true;
} else {
return false;
}
},
"isNumberOr_Letter31Text":"只能输入英文字母、数字、括号、/和下划线\n 例如:1213aads_73736jehwury////",
/*
* 用途:检查输入字符串是否只由英文字母和数字和下划线组成 输入: s:字符串 返回: 如果通过验证返回true,否则返回false
*
*/
"isNumberOr_-Letter" : function(s) {// 判断是否是数字或字母
if(s != ""){
var regu = "^[0-9a-zA-Z\_\-]+$";
var re = new RegExp(regu);
if (re.test(s)) {
return true;
} else {
return false;
}
}else{
return true;
}
},
"isNumberOr_-LetterText":"只能输入英文字母、数字,横线和下划线\n 例如:1213aads_737-36jehwury",
/*
* 用途:检查输入字符串是否只由英文字母和数字和下划线组成 输入: s:字符串 返回: 如果通过验证返回true,否则返回false
*
*/
"isNumberOr_Letter2" : function(s) {
if(s==""){
return true;
}
var regu = "^[0-9a-zA-Z\_\-]+$";
var re = new RegExp(regu);
if (re.test(s)) {
return true;
} else {
return false;
}
},
"isNumberOr_Letter2Text":"只能输入英文字母、数字,横线和下划线\n 例如:1213aads_737-36jehwury",
/*
* 用途:检查输入字符串是否只由英文字母和数字组成 输入: s:字符串 返回: 如果通过验证返回true,否则返回false
*
*/
"isNumberOrLetter" : function(s) {// 判断是否是数字或字母
if(s==""){
return true;
}
var regu = "^[0-9a-zA-Z]+$";
var re = new RegExp(regu);
if (re.test(s)) {
return true;
} else {
return false;
}
},
"isNumberOrLetterText":"只能输入英文字母和数字 \n 例如:1213aads",
/*
* 用途:检查输入字符串是否只由英文字母和数字组成,或“/”组成,用于产品定义中的拼音码简称 输入: s:字符串 返回: 如果通过验证返回true,否则返回false
*
*/
"isNumberOrLetterP" : function(s) {// 判断是否是数字或字母
if(s==""){
return true;
}
var regu = "^[//0-9a-zA-Z]+$";
var re = new RegExp(regu);
if (re.test(s)) {
return true;
} else {
return false;
}
},
"isNumberOrLetterPText":"只能输入英文字母和数字及“/” \n 例如:1213/aads",
/*
* 用途:检查输入字符串是否只由英文字母和数字或“/”组成,用于产品定义中的产品编码 输入: s:字符串 返回: 如果通过验证返回true,否则返回false
*
*/
"isNumberOrLetterP" : function(s) {// 判断是否是数字或字母
if(s==""){
return true;
}
var regu = "^[//0-9a-zA-Z]+$";
var re = new RegExp(regu);
if (re.test(s)) {
return true;
} else {
return false;
}
},
"isNumberOrLetterPText":"只能输入英文字母、数字及“/” \n 例如:1213/aads",
/*
* 用途:检查输入字符串是否只由汉字、字母、数字组成 输入: value:字符串 返回: 如果通过验证返回true,否则返回false
*
*/
"isChinaOrNumbOrLett" : function(s) {// 判断是否是汉字、字母、数字组成
if(s==""){
return true;
}
var regu = "^[0-9a-zA-Z\u4e00-\u9fa5]+$";
var re = new RegExp(regu);
if (re.test(s)) {
return true;
} else {
return false;
}
},
"isChinaOrNumbOrLettText":"只能输入汉字、字母和数字",
/*
* 用途:检查输入字符串是否只由汉字、字母、数字,/和_组成 输入: value:字符串 返回: 如果通过验证返回true,否则返回false
*
*/
"isChinaOrNumbOrLett2" : function(s) {// 判断是否是汉字、字母、数字组成
if(s==""){
return true;
}
var regu = "^[0-9a-zA-Z\u4e00-\u9fa5\/\_\(\)]+$";
var re = new RegExp(regu);
if (re.test(s)) {
return true;
} else {
return false;
}
},
"isChinaOrNumbOrLett2Text":"只能输入汉字、字母、数字、/、()和_",
/*
*用途:只能输入汉字并且位数应少于50
*/
"isChina":function(s){
var regu = "^[\u4E00-\u9FA5]{0,50}$";
var re = new RegExp(regu);
if(re.test(s)){
return true;
}else{
return false;
}
},
"isChinaText":"只能输入汉字并且长度应该小于50",
"isChina25":function(s){
var regu = "^[\u4E00-\u9FA5]{0,25}$";
var re = new RegExp(regu);
if(re.test(s)){
return true;
}else{
return false;
}
},
"isChina25Text":"只能输入汉字并且长度应该小于等于25",
"isNubermChar":function(s){
var regu = "^[0-9\%\.]+$";
var re = new RegExp(regu);
if(re.test(s)){
return true;
}else{
return false;
}
},
"isNubermCharText":"只能输入数字和%号",
/*
* 用途:检查输入字符串是否只由汉字、字母、数字、'-','_'组成 输入: value:字符串 返回: 如果通过验证返回true,否则返回false
*
*/
"isChinaOrNumb_OrLett2" : function(s) {
if(s==""){
return true;
}
var regu = "^[0-9a-zA-Z\u4e00-\u9fa5\_\/\*\-]+$";
var re = new RegExp(regu);
if (re.test(s)) {
return true;
} else {
return false;
}
},
"isChinaOrNumb_OrLett2Text":"只能输入汉字、字母、数字、下划线和横线\n 例如:你好_737-ehwury",
/**
* 用途:检查输入字符串是否只由汉字、字母、数字、'-','_'和'()'组成
* @date 2013-05-24
*/
"isChinaOrNumb_OrLett2OrBracket" : function(s) {
if(s==""){
return true;
}
var regu = "^[\(\)\(\)\\0-9a-zA-Z\u4e00-\u9fa5\_\/\*\-]+$";
var re = new RegExp(regu);
if (re.test(s)) {
return true;
} else {
return false;
}
},
"isChinaOrNumb_OrLett2OrBracketText" : "只能输入汉字、字母、数字、下划线、横线和小括号",
/*
* 用途:检查输入字符串是否只由汉字、字母、数字、'-'、'——'组成 输入: value:字符串 返回: 如果通过验证返回true,否则返回false
*
*/
"isChinaOrNumb_OrLett3" : function(s) {
if(s==""){
return true;
}
var regu = "^[0-9a-zA-Z\u4e00-\u9fa5\-\/\——]+$";
var re = new RegExp(regu);
if (re.test(s)) {
return true;
} else {
return false;
}
},
"isChinaOrNumb_OrLett3Text":"只能输入汉字、字母、数字和中英文横线\n 例如:你好737-ehwury",
/*
* 用途:检查输入字符串是否只由汉字、字母、数字、'-','_','/','\','*'组成 输入: value:字符串 返回: 如果通过验证返回true,否则返回false
*
*/
"isChinaOrNumb_OrStarLett2" : function(s) {
if(s==""){
return true;
}
var regu = "^[\\0-9a-zA-Z\u4e00-\u9fa5\_\(-)*\-]+$";
var re = new RegExp(regu);
if (re.test(s)) {
return true;
} else {
return false;
}
},
"isChinaOrNumb_OrStarLett2Text":"只能输入汉字、字母、数字、下划线、横线、斜线、反斜线、星号\n 例如:你好_737-eh/wu\ry*js",
/*
* 用途:检查输入字符串是否只由汉字、字母、数字、'-','_'、'/'组成 输入: value:字符串 返回: 如果通过验证返回true,否则返回false
*
*/
"isChinaOrNumb_OrLettOrLine2" : function(s) {
if(s==""){
return true;
}
var regu = "^[\\0-9a-zA-Z\u4e00-\u9fa5\_\-]+$";
var re = new RegExp(regu);
if (re.test(s)) {
return true;
} else {
return false;
}
},
"isChinaOrNumb_OrLettOrLine2Text":"只能输入汉字、字母、数字、'%'、'_'、'-'、'/'",
/*
* 用途:检查输入字符串是否只由汉字、字母、数字、'-','_'、'/'、'()'组成 输入: value:字符串 返回: 如果通过验证返回true,否则返回false
*
*/
"isChinaOrNumb_OrLettOrLine2OrBracket" : function(s) {
if(s==""){
return true;
}
var regu = "^[\(\)\(\)\\0-9a-zA-Z\u4e00-\u9fa5\_\-]+$";
var re = new RegExp(regu);
if (re.test(s)) {
return true;
} else {
return false;
}
},
"isChinaOrNumb_OrLettOrLine2OrBracketText":"只能输入汉字、字母、数字、'()'、'_'、'-'、'/'",
/*
* 用途:判断是否是日期 输入:date:日期;fmt:日期格式 返回:如果通过验证返回true,否则返回false
*/
"isDate" : function(date, fmt) {
if(date==""){
return true;
}
if (fmt == null)
fmt = "yyyyMMdd";
var yIndex = fmt.indexOf("yyyy");
if (yIndex == -1)
return false;
var year = date.substring(yIndex, yIndex + 4);
var mIndex = fmt.indexOf("MM");
if (mIndex == -1)
return false;
var month = date.substring(mIndex, mIndex + 2);
var dIndex = fmt.indexOf("dd");
if (dIndex == -1)
return false;
var day = date.substring(dIndex, dIndex + 2);
if (!isNumber(year) || year > "2100" || year < "1900")
return false;
if (!isNumber(month) || month > "12" || month < "01")
return false;
if (day > getMaxDay(year, month) || day < "01")
return false;
return true;
},
getMaxDay : function(year, month) {
if (month == 4 || month == 6 || month == 9 || month == 11)
return "30";
if (month == 2)
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0)
return "29";
else
return "28";
return "31";
},
"isDateText":"输入的正确的日期格式\n 例如:2010-05-05 12:23:45",
/*
* 用途:字符1是否以字符串2结束 输入:str1:字符串;str2:被包含的字符串 返回:如果通过验证返回true,否则返回false
*
*/
"isLastMatch" : function(str1, str2) {
var index = str1.lastIndexOf(str2);
if (str1.length == index + str2.length)
return true;
return false;
},
"isLastMatchText":"前一个字符串只能以后一个字符串结束",
/*
* 用途:字符1是否以字符串2开始 输入:str1:字符串;str2:被包含的字符串 返回:如果通过验证返回true,否则返回false
*
*/
"isFirstMatch" : function(str1, str2) {
var index = str1.indexOf(str2);
if (index == 0)
return true;
return false;
},
"isFirstMatchText":"前一个字符串只能以后一个字符串开始",
/*
* 用途:字符1是包含字符串2 输入:str1:字符串;str2:被包含的字符串 返回:如果通过验证返回true,否则返回false
*
*/
"isMatch" : function(str1, str2) {
var index = str1.indexOf(str2);
if (index == -1)
return false;
return true;
},
"isMatchText":"前一个字符串要包含后一个字符串",
//邮箱验证
"mail" : function(_v) {
if(_v==""){
return true;
}
return '/^\w+@\w+\.\w+$/'.test(_v);
},
"mailText" : "请输入正确的email格式!\n例如:username@domain.com",//错误提示
"mailMask" : '/[\w@.]/i',//这行是用户应该输入的值的格式,这行可以不写
// 年龄
"age" : function(_v) {
if(_v==""){
return true;
}
if ('/^\d+$/'.test(_v)) {
var _age = parseInt(_v);
if (_age < 200)
return true;
} else
return false;
},
'ageText' : '年龄格式出错!!格式例如:20',
'ageMask' : '/[0-9]/i',
// 密码验证
"repassword" : function(_v, field) {
if (field.confirmTO) {
var psw = Ext.get(field.confirmTO);
return (_v == psw.getValue());
}
return true;
},
"repasswordText" : "密码输入不一致!!",
"repasswordMask" : '/[a-z0-9]/i',
// 邮政编码
"postcode" : function(_v) {
if(_v==""){
return true;
}
return (/^[1-9]\d{5}$/.test(_v));
},
"postcodeText" : "该输入项目必须是邮政编码格式,例如:226001",
// "postcodeMask" : '/[0-9]/i',
// IP地址验证
"ip" : function(_v) {
return /^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/
.test(_v);
},
"ipText" : "该输入项目必须是IP地址格式,例如:222.192.42.12",
"ipMask" : /[0-9\.]/i,
// fax传真
"fax" : function(_v) {
if(_v==""){
return true;
}
return (/(^\d{3}\-\d{7,8}$)|(^\d{4}\-\d{7,8}$)|(^\d{3}\d{7,8}$)|(^\d{4}\d{7,8}$)|(^\d{7,8}$)/
.test(_v));
},
"faxText" : "该输入值必须是传真格式,例如:0513-89500414,051389500414,89500414",
// 固定电话及小灵通
"telephone" : function(_v) {
if(_v==""){
return true;
}
return (/(^\d{3}\-\d{7,8}$)|(^\d{4}\-\d{7,8}$)|(^\d{3}\d{7,8}$)|(^\d{4}\d{7,8}$)|(^\d{7,8}$)/
.test(_v));
},
"telephoneText" : "该输入项目必须是电话号码格式,例如:0513-89500414,051389500414,89500414",
// "telephoneMask" : '/[0-9\-]/i',
// 手机
"mobile" : function(_v) {
if(_v==""){
return true;
}
return '/^1[35][0-9]\d{8}$/'.test(_v);
},
"mobileText" : "该输入项目必须是手机号码格式,例如:13485135075",
"mobileMask" : '/[0-9]/i',
// 身份证
"IDCard" : function(_v) {
if(_v==""){
return true;
}
// return /(^[0-9]{17}([0-9]|[Xx])$)|(^[0-9]{17}$)/.test(_v);
var area = {
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 Y, JYM;
var S, M;
var idcard_array = new Array();
idcard_array = _v.split("");
// 地区检验
if (area[parseInt(_v.substr(0, 2))] == null) {
this.IDCardText = "身份证号码地区非法!!,格式例如:32";
return false;
}
// 身份号码位数及格式检验
switch (_v.length) {
case 15 :
if ((parseInt(_v.substr(6, 2)) + 1900) % 4 == 0
|| ((parseInt(_v.substr(6, 2)) + 1900) % 100 == 0 && (parseInt(_v
.substr(6, 2)) + 1900)
% 4 == 0)) {
ereg = '/^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}$/';// 测试出生日期的合法性
} else {
ereg = '/^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}$/';// 测试出生日期的合法性
}
if (ereg.test(_v))
return true;
else {
this.IDCardText = "身份证号码出生日期超出范围,格式例如:19860817";
return false;
}
break;
case 18 :
// 18位身份号码检测
// 出生日期的合法性检查
// 闰年月日:((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))
// 平年月日:((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))
if (parseInt(_v.substr(6, 4)) % 4 == 0
|| (parseInt(_v.substr(6, 4)) % 100 == 0 && parseInt(_v
.substr(6, 4))
% 4 == 0)) {
ereg = '/^[1-9][0-9]{5}19[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}[0-9Xx]$/';// 闰年出生日期的合法性正则表达式
} else {
ereg = '/^[1-9][0-9]{5}19[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}[0-9Xx]$/';// 平年出生日期的合法性正则表达式
}
if (ereg.test(_v)) {// 测试出生日期的合法性
// 计算校验位
S = (parseInt(idcard_array[0]) + parseInt(idcard_array[10]))
* 7
+ (parseInt(idcard_array[1]) + parseInt(idcard_array[11]))
* 9
+ (parseInt(idcard_array[2]) + parseInt(idcard_array[12]))
* 10
+ (parseInt(idcard_array[3]) + parseInt(idcard_array[13]))
* 5
+ (parseInt(idcard_array[4]) + parseInt(idcard_array[14]))
* 8
+ (parseInt(idcard_array[5]) + parseInt(idcard_array[15]))
* 4
+ (parseInt(idcard_array[6]) + parseInt(idcard_array[16]))
* 2
+ parseInt(idcard_array[7])
* 1
+ parseInt(idcard_array[8])
* 6
+ parseInt(idcard_array[9]) * 3;
Y = S % 11;
M = "F";
JYM = "10X98765432";
M = JYM.substr(Y, 1);// 判断校验位
// alert(idcard_array[17]);
if (M == idcard_array[17]) {
return true; // 检测ID的校验位
} else {
this.IDCardText = "身份证号码末位校验位校验出错,请注意x的大小写,格式例如:201X";
return false;
}
} else {
this.IDCardText = "身份证号码出生日期超出范围,格式例如:19860817";
return false;
}
break;
default :
this.IDCardText = "身份证号码位数不对,应该为15位或是18位";
return false;
break;
}
},
"IDCardText" : "该输入项目必须是身份证号码格式,例如:32082919860817201x",
"IDCardMask" : '/[0-9xX]/i',
"isNumberOrLetterAndSpace" : function(s) {// 判断是否是数字或字母
if(s==""){
return true;
}
var regu = "^[0-9a-zA-Z][0-9a-zA-Z ]*$";
var re = new RegExp(regu);
if (re.test(s)) {
return true;
} else {
return false;
}
},
"isNumberOrLetterAndSpaceText":"只能输入英文字母和数字和空格 \n 例如:12 as 13 ds ",
/**
* 2010-12-15
* 控制不能输入'"','\''字符,因为拼接树的时候会出现解析错误
* @param {} str
* @return {Boolean}
*/
"isQuotationChineseMarks" : function(str) {
var re = new RegExp(/[\u4e00-\u9fa5]|\'|\"/);
if (re.test(str)) {
return false;
} else {
return true;
}
},
"isQuotationChineseMarksText" : "输入的内容含有特殊字符英文单引号(')或者英文双引号(\")或者中文汉字",
/**
* 2011-7-8
* 控制不能输入"<"字符,因为grid中"</"会不显示也不能输入全部为空格
* @param {} str
* @return {Boolean}
*/
"isLessThan" : function(str) {
var re = new RegExp(/<|^[ ]+$/);
if (re.test(str)) {
return false;
} else {
return true;
}
},
"isLessThanText" : "输入的内容含有特殊字符英文小于号(<)或者全部为空格",
//验证url
"isUrl" : function(_v) {
/* var strregex = "^((https|http|ftp|rtsp|mms)?://)"
+ "?(([0-9a-za-z_!~*'().&=+$%-]+: )?[0-9a-za-z_!~*'().&=+$%-]+@)?" //ftp的user@
+ "(([0-9]{1,3}.){3}[0-9]{1,3}" // ip形式的url- 199.194.52.184
+ "|" // 允许ip和domain(域名)
+ "([0-9a-za-z_!~*'()-]+.)*" // 域名- www.
+ "([0-9a-za-z][0-9a-za-z-]{0,61})?[0-9a-za-z]." // 二级域名
+ "[a-za-z]{2,6})" // first level domain- .com or .museum
+ "(:[0-9]{1,4})?" // 端口- :80
+ "((/?)|"
+ "(/[0-9a-za-z_!~*'().;?:@&=+$,%#-]+)+/?)$"; */
var re=new RegExp(/^https?:\/\/(([a-zA-Z0-9_-])+(\.)?)*(:\d+)?(\/((\.)?(\?)?=?&?[a-zA-Z0-9_-](\?)?)*)*$/);
return re.test(_v);
},
"isUrlText" : "该输入项目必须是url地址格式,例如http://localhost:8002",
"isChinaOrNumbOrLettBrackets" : function(s) {// 判断是否是汉字、字母、数字组成加括号
if(s==""){
return true;
}
var regu = "^[0-9a-zA-Z\u4e00-\u9fa5()]+$";
var re = new RegExp(regu);
if (re.test(s)) {
return true;
} else {
return false;
}
},
"isChinaOrNumbOrLettBracketsText":"只能输入汉字、字母和数字()",
/**
* 判断是否是汉字、字母、数字组成加括号(支持中英文全角半角)
*
* @date 2013-06-09
* @param {} s
* @return {Boolean}
*/
"isChinaOrNumbOrLettBracketsForAll" : function(s) {
if(s==""){
return true;
}
var regu = "^[0-9a-zA-Z\u4e00-\u9fa5()()]+$";
var re = new RegExp(regu);
if (re.test(s)) {
return true;
} else {
return false;
}
},
"isChinaOrNumbOrLettBracketsForAllText":"只能输入汉字、字母、数字和()",
"isNumberOr_LetterBrackets" : function(s) {// 判断是否是数字或字母
if(s==""){
return true;
}
var regu = "^[0-9a-zA-Z\_()-]+$";
var re = new RegExp(regu);
if (re.test(s)) {
return true;
} else {
return false;
}
},
"isNumberOr_LetterBracketsText":"只能输入英文字母、数字和下划线\n 例如:1213aads_73736jehwury()",
"isNumberOr_LetterBar" : function(s) {// 判断是否是数字或字母
if(s==""){
return true;
}
var regu = "^[\\\\0-9a-zA-Z\_-]+$";
var re = new RegExp(regu);
if (re.test(s)) {
return true;
} else {
return false;
}
},
"isNumberOr_LetterBarText":"只能输入英文字母、数字和下划线\n 例如:1213aads_73736jehwury-\\",
"isSafe_KeyWords": function(textvalue){
var flag = true;
//oracle sql关键字
var oracleSqlkeywords = "ACCESS ADD ALL ALTER AND ANY AS ASC AUDIT BETWEEN BY CHAR"+
"CHECK CLUSTER COLUMN COMMENT COMPRESS CONNECT CREATE CURRENT"+
"DATE DECIMAL DEFAULT DELETE DESC DISTINCT DROP ELSE EXCLUSIVE"+
"EXISTS FILE FLOAT FOR FROM GRANT GROUP HAVING IDENTIFIED"+
"IMMEDIATE IN INCREMENT INDEX INITIAL INSERT INTEGER INTERSECT"+
"INTO IS LEVEL LIKE LOCK LONG MAXEXTENTS MINUS MLSLABEL MODE"+
"MODIFY NOAUDIT NOCOMPRESS NOT NOWAIT NULL NUMBER OF OFFLINE ON"+
"ONLINE OPTION OR ORDER PCTFREE PRIOR PRIVILEGES PUBLIC RAW"+
"RENAME RESOURCE REVOKE ROW ROWID ROWNUM ROWS SELECT SESSION"+
"SET SHARE SIZE SMALLINT START SUCCESSFUL SYNONYM SYSDATE TABLE"+
"THEN TO TRIGGER UID UNION UNIQUE UPDATE USER VALIDATE VALUES"+
"VARCHAR VARCHAR2 VIEW WHENEVER WHERE WITH";
//防止声明变量,HEX编码式的sql注入
var otherkeywords = "DECLARE HEX";
//js敏感关键字
var jsKeywords ="BREAK DELETE FUNCTION RETURN TYPEOF CASE DO IF SWITCH VAR"+
"CATCH ELSE IN THIS VOID CONTINUE FALSE INSTANCEOF THROW WHILE DEBUGGER FINALLY NEW TRUE WITH DEFAULT FOR NULL TRY "+
"ABSTRACT DOUBLE GOTO NATIVE STATIC BOOLEAN ENUM IMPLEMENTS PACKAGE SUPER BYTE EXPORT IMPORT PRIVATE SYNCHRONIZED"+
"CHAR EXTENDS INT PROTECTED THROWS CLASS FINAL INTERFACE PUBLIC TRANSIENT CONST FLOAT LONG SHORT VOLATILE";
//html敏感关键字
var htmlKeywords ="EVAL IFRAME SCRIPT META LOCATION DIV INNERHTML OUTERHTML DOCUMENT MARQUEE FUNCTION ALERT";
//禁用字符
var forbidChar = new Array(",", "\\", "'","‘","’","!","!","%", "\"","&", "#",
"^","<",">","*","[","]","(",")","{","}",".",
"`","~", "+","=", "$",";",";",":","|","-");
var keywords = oracleSqlkeywords + " " + jsKeywords+" "+ htmlKeywords+" "+otherkeywords;
var filterArray = keywords.split(" ");
var value = textvalue.toUpperCase();
//关键字过滤循环
for (i=0;i<filterArray.length;i++) {
if (value.indexOf(filterArray[i])!=-1){
flag = false;
}
}
//敏感字符过滤循环
for (i=0;i<forbidChar.length;i++) {
if (value.indexOf(forbidChar[i])!=-1){
flag = false;
}
}
return flag;
},
"isSafe_KeyWordsText" : "输入的内容含有不安全字符片段,请勿输入js语言,html语言标记,以及sql关键字"
}
2、使用方式:
- 引入该js文件
<script type="text/javascript" src="validate.js"></script>
- 调用validates中的方法:
validates.isChinaOrNumbOrLett("12")
true
validates.isChinaOrNumbOrLettText
"只能输入汉字、字母和数字"
- 表示校验的参数
isChinaOrNumbOrLett(string)- 表示校验的条件
isChinaOrNumbOrLettText