[JavaScript] 纯文本查看 复制代码;
(function($) { // 开启沙箱模式
zz = { // 定义一个 名为 zz 的方法,在这里添加常用正则, 例如 zz.notNull() 调用
notNull: function(){ return /^.+$/;}, // 不能为空
chinese:function(){ return /^[\u4e00-\u9fa5]+$/;}, // 中文
email:function(){return /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((\.[a-zA-Z0-9_-]{2,3}){1,2})$/;}, // 邮箱
post:function(){return /^[1-9][0-9]{0,}$/;},//邮政编码
num:function(){return /^[0-9]*$/;}, // 数字
ffzs:function(){return /^\d+$/;}, // 非负整数
aBc123:function(){return /^[A-Za-z0-9]+$/;},//数字和英文
mobile:function(){return /^(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\d{8}$/;},//手机号
tel:function(){return /^1[0-9]{10}$/;},// 手机号
fax:function(){return /^((\d{7,8})|(\d{4}|\d{3})-(\d{7,8})|(\d{4}|\d{3})-(\d{7,8})-(\d{4}|\d{3}|\d{2}|\d{1})|(\d{7,8})-(\d{4}|\d{3}|\d{2}|\d{1}))$/;}//传真
}
$(function() {
var suCount = 0; // 成功提交前提 ,为 0 可以提交 ,为 1 不可提交
$.fn.lc_val_form = function(options) {
var valiJSON=toValiJson();
$("#" + options["subId"]).click(function() { // 提交按钮被单击
suCount = 0;
for(var i = 0; i < valiJSON.length; i++) {
var val = $("#" + valiJSON[i].vaId).val();
eachVali(val, i);
}
if(options["ifAjax"] == "yes" && suCount == 0) { // 如果 选择 ajax 提交 ,那么如果校验全部通过,提交 ,提交后可使用 getAjax=function(data){alert(data);} 获取返回数据
$.ajax({
type: "post",
url: $("#" + options["formId"]).attr("action"),
async: false,
data: $("#" + options["formId"]).serialize(),
success: function(data) {
getAjax(data);
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
console.log("ajax 提交表单报错了!");
if(XMLHttpRequest.status==404){
console.log("错误tips:--网页走丢了--");
}
else if(XMLHttpRequest.status==500){
console.log("错误tips:--内部服务器错误--");
}
}
});
} else if(options["ifAjax"] == "no" && suCount == 0) { // 如果选择 普通方式提示,那么提交 form action 里的地址
$("#" + options["formId"]).submit();
}
});
// -----------------------------------------------------------
if(options["realTime"] == "yes") {
$("#"+options["formId"]).addClass("formVali");
for(var i = 0; i < valiJSON.length; i++){
$("#"+valiJSON[i].vaId).addClass("vali");
}
$(".formVali .vali").on('blur', function() {
var t = $(this);
var valiJSON=toValiJson();
for(var i = 0; i < valiJSON.length; i++) {
if(t.attr("id") == valiJSON[i].vaId) {
var getId = t.attr("id");
var val = $("#" + getId).val();
eachVali(val, i);
}
}
})
}
//------------------------------------------------------------
function eachVali(val, i) {
for(var j = 0; j < valiJSON[i].rule.length; j++) {
function addTip() {
if(options["ifImg"] == "yes") {
$("#" + valiJSON[i].tipId).html("" + " " + valiJSON[i].rule[j].tip);
suCount = 1;
} else {
$("#" + valiJSON[i].tipId).html(valiJSON[i].rule[j].tip);
suCount = 1;
}
}
if(typeof(valiJSON[i].rule[j].reg) != 'undefined') { // 第一种: 标准正则校验
var ifSucc = valiJSON[i].rule[j].reg.test(val);
if(valiJSON[i].rule[j].reg.toString()=="/^.+$/")// 如果正则是判断非空,那么正常执行
{
if(!ifSucc) {
addTip();
break; // 条件不成立-跳出循环
} else {
$("#" + valiJSON[i].tipId).html("");
}
}else{ // 否则,需判断 值要不能为空
if(!ifSucc&&val!="") {
addTip();
break; // 条件不成立-跳出循环
} else {
$("#" + valiJSON[i].tipId).html("");
}
}
} else if(typeof(valiJSON[i].rule[j].maxLe) != 'undefined') { // 第二种: 长度校验
if(val.length > parseInt(valiJSON[i].rule[j].maxLe) || val.length < parseInt(valiJSON[i].rule[j].minLe)) {
addTip();
break;
} else {
$("#" + valiJSON[i].tipId).html("");
}
} else if(typeof(valiJSON[i].rule[j].ajaxURL) != 'undefined') { // 第三种: ajax 校验 0:不成立 1:符合条件
var d="";
$.ajax({
url: valiJSON[i].rule[j].ajaxURL,
data: valiJSON[i].rule[j].value,
type: 'post',
traditional: true,
async: false,
dataType: "json",
success: function(data) {
d=data;
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
console.log("ajax 校验报错了!");
if(XMLHttpRequest.status==404){
console.log("错误tips:--网页走丢了--");
}
else if(XMLHttpRequest.status==500){
console.log("错误tips:--内部服务器错误--");
}
}
});
if(parseInt(d)==0){
addTip();
break;
}else{
$("#" + valiJSON[i].tipId).html("");
}
} else if(typeof(valiJSON[i].rule[j].custom) != 'undefined') { // 第四种 ,自定义校验,自己写函数,返回 true 或 false
if(!valiJSON[i].rule[j].custom()) {
addTip();
break;
} else {
$("#" + valiJSON[i].tipId).html("");
}
} else { // 以上皆不成立,说明 校验json 书写有误
suCount = 1;
console.log("输入的校验规则有误!");
}
}
}
}
});
})(jQuery);
// @且听风吟