文件源码如下:
define({
getDomainName() {
return "http://127.0.0.1:8080"
},
isPressEnter: function() {
return event.keyCode === 13;
},
isEmpty(str) {
return typeof str == "undefined" || str == null || str === "";
},
verifyLayer(domName, regExp, msg, $, layer) {
let dom = $("input[name=" + domName + "]");
if(this.isEmpty(dom.val())) {
layer.msg("必填项项不能为空!", {
icon: 5
, anim: 6
, time: 1000
}, function () {
dom.val("");
dom.focus();
});
return true;
}
if (!regExp.test(dom.val())) {
layer.msg(msg, {
icon: 5
, anim: 6
, time: 1000
}, function () {
dom.val("");
dom.focus();
});
return true;
}
return false;
},
verifyLayerWhetherNull(domName, regExp, msg, $, layer) {
let dom = $("input[name=" + domName + "]");
if(this.isEmpty(dom.val())) return false;
if (!regExp.test(dom.val())) {
layer.msg(msg, {
icon: 5
, anim: 6
, time: 1000
}, function () {
dom.val("");
dom.focus();
});
return true;
}
return false;
},
layerAnim6(msg, ms, layer) {
layer.msg(msg, {
anim: 6,
time: ms
})
},
isFormatDate(str) {
const format = /^(19|20)[\d]{2}-(0\d|1[0-2])-([012]\d|3[01])$/;
return format.test(str);
},
isPhoneNumber(str) {
const phone = /^1[3-9]\d{9}$/;
return phone.test(str);
},
isEmail(str) {
const email = /^[a-zA-Z\d](\w|-|\+)+@(qq|163|126|yeah|gmail|outlook|hotmail|live|aliyun)\.(com|net)$/;
return email.test(str);
},
isPassword(str) {
const pswd = /^[\S]{6,16}$/;
return pswd.test(str);
},
getUrlParam(name) {
let pattern = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
let result = window.location.search.substr(1).match(pattern);
if (result != null)
return unescape(result[2]);
return null;
},
replaceUrlParam(url) {
return escape(url).replace(/\+/g, '%2B').replace(/\"/g, '%22').replace(
/\'/g, '%27').replace(/\//g, '%2F');
},
getFormatDate(formatString) {
Date.prototype.format = function (format) {
let o = {
"M+": this.getMonth() + 1,
"d+": this.getDate(),
"h+": this.getHours(),
"m+": this.getMinutes(),
"s+": this.getSeconds(),
"q+": Math.floor((this.getMonth() + 3) / 3),
"S": this.getMilliseconds()
}
if (/(y+)/.test(format)) {
format = format.replace(RegExp.$1, (this.getFullYear() + "")
.substr(4 - RegExp.$1.length));
}
for (var k in o) {
if (new RegExp("(" + k + ")").test(format)) {
format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k]
: ("00" + o[k]).substr(("" + o[k]).length));
}
}
return format;
}
return new Date().format(formatString);
}
});
使用示例如下:
require.config({
baseUrl: 'js',
paths: {
utils: 'utils/utils',
layui: '../layui/layui'
},
shim: {
'layui': {
exports: 'layui'
}
}
});
require(['layui', 'utils'], function (layui, utils) {
utils.getDomainName();
if(utils.isPressEnter()) {
}
if(utils.isEmpty()) {
}
if(!utils.isPhoneNumber()) {
}
utils.getUrlParam("a");
let url = "http://localhost:8080/xxx?a=1";
utils.replaceUrlParam(url);
utils.getFormatDate("yyyy-MM-dd");
layui.use(['form', 'layer'], function () {
const layer = layui.layer
, form = layui.form
, $ = layui.$;
let stuId = sessionStorage.getItem("roleId");
if (utils.isEmpty(stuId)) {
utils.layerAnim6('学生信息为空,操作出现异常!', 1000, layer);
return false;
}
form.on('submit(studentInfoSubmit)', function (data) {
if (utils.verifyLayerWhetherNull("phone",
/^1[3-9]\d{9}$/,
'格式错误,电话号码支持13-19开头,且为11位',
$, layer)) return false;
if (utils.verifyLayerWhetherNull("qq",
/^\d{6,11}$/,
'格式错误,QQ号码应为6~11位',
$, layer)) return false;
if (utils.verifyLayer("name",
/^[\u4e00-\u9fa5]{2,13}$/,
'格式错误,暂只支持中文,姓名应为2~13个字符',
$, layer)) return false;
if (utils.verifyLayer("stuNumber",
/^\w{4,12}$/,
'格式错误,学号应为4~11位',
$, layer)) return false;
if (utils.verifyLayerWhetherNull("school",
/^[\u4e00-\u9fa5\w]{1,55}$/,
'格式错误,学校名称不超过55个字符',
$, layer)) return false;
if (utils.verifyLayerWhetherNull("department",
/^[\u4e00-\u9fa5\w]{1,20}$/,
'格式错误,院系名称不超过20个字符',
$, layer)) return false;
if (utils.verifyLayerWhetherNull("major",
/^[\u4e00-\u9fa5\w]{1,20}$/,
'格式错误,专业不超过20个字符',
$, layer)) return false;
if (utils.verifyLayerWhetherNull("enrollmentYear",
/^(20)\d{2}$/,
'格式错误,入学年份应以“20”开头,且为4位数字',
$, layer)) return false;
$.ajax({
url: utils.getDomainName() + "/student/updateStudentInfo/",
data: {
id: data.field['id'],
email: data.field['email'],
phone: data.field['phone'],
qq: data.field['qq'],
name: data.field['name'],
stuNumber: data.field['stuNumber'],
school: data.field['school'],
department: data.field['department'],
major: data.field['major'],
enrollmentYear: data.field['enrollmentYear']
},
dataType: 'json',
type: 'put',
timeout: 10000,
success: function (json) {
if (json.success) {
layer.msg("修改成功!", {time: 2000}, function () {
window.parent.location.reload();
});
} else {
let message = json['msg'];
if (typeof message !== undefined && !utils.isEmpty(message) && message !== "") {
layer.msg(message, {time: 2000}, function () {
window.location.reload();
});
} else {
layer.msg('修改学生信息失败!', {time: 2000}, function () {
window.location.reload();
});
}
}
},
error: function (xhr, type, errorThrown) {
console.log(xhr);
console.log(type);
console.log(errorThrown);
layer.msg('服务器出错,修改学生信息失败!');
}
});
return false;
});
});
});