You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

220 lines
5.7 KiB

10 months ago
String.prototype.startWith=function(str){
if(str==null||str==""||this.length==0||str.length>this.length)
return false;
if(this.substr(0,str.length)==str)
return true;
else
return false;
return true;
}
String.prototype.endWith=function(str){
if(str==null||str==""||this.length==0||str.length>this.length)
return false;
if(this.substring(this.length-str.length)==str)
return true;
else
return false;
return true;
}
//日期格式化
Date.prototype.format = function(format){
if(!format){
format = 'yyyy-MM-dd';// 默认1997-01-01这样的格式
}
var o = {
"M+" : this.getMonth()+1, // month
"d+" : this.getDate(), // day
"h+" : this.getHours(), // hour
"m+" : this.getMinutes(), // minute
"s+" : this.getSeconds(), // second
"q+" : Math.floor((this.getMonth()+3)/3), // quarter
"S" : this.getMilliseconds() // millisecond
}
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;
}
var config={
serverUrl:"//"+location.host
}
function Core(){
}
Core.prototype.numformat=function(){
var num = (num || 0).toString(), result = '';
var suffix="";
if(num.indexOf(".")>-1){
var t = num.split(".");
num=t[0];
suffix = "." + t[1];
}
while (num.length > 3) {
result = ',' + num.slice(-3) + result;
num = num.slice(0, num.length - 3);
}
if (num) { result = num +""+ result; }
return result+suffix;
}
Core.prototype.token=function(d){
d.createAt = new Date();
return this.data("token",d);
}
Core.prototype.error=function(d){
alert(d)
}
Core.prototype.alert=function(d){
alert(d)
}
//用于存储信息
Core.prototype.data=function(k,d){
//console.log("data",k,d)
if(typeof d=="undefined"){
var o = localStorage.getItem(k);
if(o==null){
return null;
}else{
o = JSON.parse(o)
return o[k]
}
}else if(null==d){
return localStorage.removeItem(k)
}else{
var o = {}
o[k] = d;
return localStorage.setItem(k,JSON.stringify(o))
}
}
//用于存储信息
Core.prototype.api=function(uri){
if(uri.startWith("/")){
return config.serverUrl+uri
}else{
return config.serverUrl+"/"+uri
}
}
Core.prototype.post=function(uri,data,fn){
var url = this.api(uri)
return new Promise(function (resolve, reject) {
var xhr = new XMLHttpRequest();
xhr.open("POST",url, true);
// 添加http头发送信息至服务器时内容编码类型
xhr.setRequestHeader(
"Content-Type",
"application/x-www-form-urlencoded"
);
xhr.onreadystatechange = function() {
if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 304)) {
resolve(JSON.parse(xhr.responseText));
}
};
xhr.onerror = function(){
reject({"code":-1,"msg":"服务器繁忙"})
}
var _data=[];
for(var i in data){
_data.push( i +"=" + encodeURI(data[i]));
}
xhr.send(_data.join("&"));
})
}
Core.prototype.uploadfile=function(uri,dom){
var url = this.api(uri)
return new Promise(function (resolve, reject) {
var xhr = new XMLHttpRequest();
xhr.open("POST",url, true);
xhr.onreadystatechange = function() {
if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 304)) {
resolve(JSON.parse(xhr.responseText));
}
};
xhr.onerror = function(){
reject({"code":-1,"msg":"服务器繁忙"})
}
var formdata = new FormData();
formdata.append("file",dom.files[0])
xhr.send(formdata);
})
}
Core.prototype.uploadmp3=function(uri,blob){
var url = this.api(uri)
return new Promise(function (resolve, reject) {
var xhr = new XMLHttpRequest();
xhr.open("POST",url, true);
xhr.onreadystatechange = function() {
if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 304)) {
resolve(JSON.parse(xhr.responseText));
}
};
xhr.onerror = function(){
reject({"code":-1,"msg":"服务器繁忙"})
}
var formdata = new FormData();
formdata.append("filetype",".mp3");
formdata.append("file",blob)
xhr.send(formdata);
})
}
Core.prototype.parseUri = function(url){
if(typeof url=="undefined"){
url= location.href;
}
var query = url.substr(url.indexOf("?"));
query=query.substr(1);
var reg = /([^=&\s]+)[=\s]*([^=&\s]*)/g;
var obj = {};
while(reg.exec(query)){
obj[RegExp.$1] = decodeURI(RegExp.$2);
}
return obj;
}
Core.prototype.parseQuery = function(name){
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); //构造一个含有目标参数的正则表达式对象
var r = window.location.search.substr(1).match(reg); //匹配目标参数
if (r != null) return decodeURI(unescape(r[2]));
return null; //返回参数值
}
Core.prototype.isemail = function(email){
return /^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+[\.][a-zA-Z0-9_-]+$/.test(email)
}
Core.prototype.ismobile = function(mobile){
return /^[1][34578][0-9]{9}$/.test(mobile)
}
Core.prototype.test = function(reg,data){
var reg = new RegExp(reg); //构造一个含有目标参数的正则表达式对象
return reg.test(data)
}
window.util = new Core();