//json2.js开始 使Json兼容ie6 7 8
var JSON;
if (!JSON) {
JSON = {};
}
(function () {
'use strict';
function f(n) {
return n < 10 ? '0' + n : n;
}
if (typeof Date.prototype.toJSON !== 'function') {
Date.prototype.toJSON = function (key) {
return isFinite(this.valueOf())
? this.getUTCFullYear() + '-' +
f(this.getUTCMonth() + 1) + '-' +
f(this.getUTCDate()) + 'T' +
f(this.getUTCHours()) + ':' +
f(this.getUTCMinutes()) + ':' +
f(this.getUTCSeconds()) + 'Z'
: null;
};
String.prototype.toJSON =
Number.prototype.toJSON =
Boolean.prototype.toJSON = function (key) {
return this.valueOf();
};
}
var cx = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,
escapable = /[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,
gap="",
indent="",
meta = { // table of character substitutions
'\b': '\\b',
'\t': '\\t',
'\n': '\\n',
'\f': '\\f',
'\r': '\\r',
'"' : '\\"',
'\\': '\\\\'
},
rep="";
function quote(string) {
escapable.lastIndex = 0;
return escapable.test(string) ? '"' + string.replace(escapable, function (a) {
var c = meta[a];
return typeof c === 'string'
? c
: '\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4);
}) + '"' : '"' + string + '"';
}
function str(key, holder) {
var i, // The loop counter.
k, // The member key.
v, // The member value.
length,
mind = gap,
partial,
value = holder[key];
if (value && typeof value === 'object' &&
typeof value.toJSON === 'function') {
value = value.toJSON(key);
}
if (typeof rep === 'function') {
value = rep.call(holder, key, value);
}
switch (typeof value) {
case 'string':
return quote(value);
case 'number':
return isFinite(value) ? String(value) : 'null';
case 'boolean':
case 'null':
return String(value);
case 'object':
if (!value) {
return 'null';
}
gap += indent;
partial = [];
if (Object.prototype.toString.apply(value) === '[object Array]') {
length = value.length;
for (i = 0; i < length; i += 1) {
partial[i] = str(i, value) || 'null';
}
v = partial.length === 0
? '[]'
: gap
? '[\n' + gap + partial.join(',\n' + gap) + '\n' + mind + ']'
: '[' + partial.join(',') + ']';
gap = mind;
return v;
}
if (rep && typeof rep === 'object') {
length = rep.length;
for (i = 0; i < length; i += 1) {
if (typeof rep[i] === 'string') {
k = rep[i];
v = str(k, value);
if (v) {
partial.push(quote(k) + (gap ? ': ' : ':') + v);
}
}
}
} else {
for (k in value) {
if (Object.prototype.hasOwnProperty.call(value, k)) {
v = str(k, value);
if (v) {
partial.push(quote(k) + (gap ? ': ' : ':') + v);
}
}
}
}
v = partial.length === 0
? '{}'
: gap
? '{\n' + gap + partial.join(',\n' + gap) + '\n' + mind + '}'
: '{' + partial.join(',') + '}';
gap = mind;
return v;
}
}
if (typeof JSON.stringify !== 'function') {
JSON.stringify = function (value, replacer, space) {
var i;
gap = '';
indent = '';
if (typeof space === 'number') {
for (i = 0; i < space; i += 1) {
indent += ' ';
}
} else if (typeof space === 'string') {
indent = space;
}
rep = replacer;
if (replacer && typeof replacer !== 'function' &&
(typeof replacer !== 'object' ||
typeof replacer.length !== 'number')) {
throw new Error('JSON.stringify');
}
return str('', {'': value});
};
}
if (typeof JSON.parse !== 'function') {
JSON.parse = function (text, reviver) {
var j;
function walk(holder, key) {
var k="", v, value = holder[key];
if (value && typeof value === 'object') {
for (k in value) {
if (Object.prototype.hasOwnProperty.call(value, k)) {
v = walk(value, k);
if (v !== undefined) {
value[k] = v;
} else {
delete value[k];
}
}
}
}
return reviver.call(holder, key, value);
}
text = String(text);
cx.lastIndex = 0;
if (cx.test(text)) {
text = text.replace(cx, function (a) {
return '\\u' +
('0000' + a.charCodeAt(0).toString(16)).slice(-4);
});
}
if (/^[\],:{}\s]*$/
.test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, '@')
.replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']')
.replace(/(?:^|:|,)(?:\s*\[)+/g, ''))) {
j = eval('(' + text + ')');
return typeof reviver === 'function'
? walk({'': j}, '')
: j;
}
throw new SyntaxError('JSON.parse');
};
}
}());
//json2.js结束
//原生ajax
//创建http
function createXMLHTTPRequest() {
//1.创建XMLHttpRequest对象
//这是XMLHttpReuquest对象无部使用中最复杂的一步
//需要针对IE和其他类型的浏览器建立这个对象的不同方式写不同的代码
var xmlHttpRequest;
if (window.XMLHttpRequest) {
//针对FireFox,Mozillar,Opera,Safari,IE7,IE8
xmlHttpRequest = new XMLHttpRequest();
//针对某些特定版本的mozillar浏览器的BUG进行修正
if (xmlHttpRequest.overrideMimeType) {
xmlHttpRequest.overrideMimeType("text/xml");
}
} else if (window.ActiveXObject) {
//针对IE6,IE5.5,IE5
//两个可以用于创建XMLHTTPRequest对象的控件名称,保存在一个js的数组中
//排在前面的版本较新
var activexName = [ "MSXML2.XMLHTTP", "Microsoft.XMLHTTP" ];
for ( var i = 0; i < activexName.length; i++) {
try {
//取出一个控件名进行创建,如果创建成功就终止循环
//如果创建失败,回抛出异常,然后可以继续循环,继续尝试创建
xmlHttpRequest = new ActiveXObject(activexName[i]);
if(xmlHttpRequest){
break;
}
} catch (e) {
}
}
}
return xmlHttpRequest;
}
//原生ajax结束
function getParameter(name) {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
var r = window.location.search.substr(1).match(reg);
if (r != null) {
return decodeURI(r[2]);
}
return null;
}
function changeURLArg(url, arg, arg_val) {
var pattern = arg + "=([^&]*)";
var replaceText = arg + "=" + arg_val;
if (url.match(pattern)) {
var tmp = "/(" + arg + "=)([^&]*)/gi";
tmp = url.replace(eval(tmp), replaceText);
return tmp;
} else {
if (url.match("[?]")) {
return url + "&" + replaceText;
} else {
return url + "?" + replaceText;
}
}
return url + "\n" + arg + "\n" + arg_val;
}
//替换或增加URL中的参数
function changeURLPar(destiny, par, par_value)
{
var pattern = par+'=([^&]*)';
var replaceText = par+'='+par_value;
if (destiny.match(pattern))
{
var tmp = '/\\'+par+'=[^&]*/';
tmp = destiny.replace(eval(tmp), replaceText);
return (tmp);
}
else
{
if (destiny.match('[\?]'))
{
return destiny+'&'+ replaceText;
}
else
{
return destiny+'?'+replaceText;
}
}
return destiny+'\n'+par+'\n'+par_value;
}
// 设置json参数
// jsonStr:原先json的数据
// name:需要设置的参数
// value:所需设置参数的属性
function setJson(jsonStr, name, value) {
// if (!jsonStr) jsonStr = "{}";
// var jsonObj = JSON.parse(jsonStr);
jsonStr[name] = value;
return JSON.stringify(jsonStr);
}
//获取table表格 里面的数据转成json对象
//labels为table里的标签数组
function countApi_table(id,labels){
var trList = $("#"+id).find("tr:has(td)");
var tdList,tdValue;
var tdListValue = {};
var list = [];
for(var i=0;i<trList.length;i++){
tdList = trList.eq(i).find("td");
for(var m=0;m<labels.length;m++){
tdValue = tdList.eq(m).text();
tdListValue = $.parseJSON(setJson(tdListValue,labels[m],tdValue));
}
list.push(tdListValue);
tdListValue = {};
}
//console.log(list);
return list;
}
function isPhone(str) {
var reg = /^((0\d{2,3}-\d{7,8})|(1[3584]\d{9}))$/;
return reg.test(str);
}
/*
* function myAllInput(totallId,inputClass){ var list =
* $("#"+totallId).find("."+inputClass); var inputValue,inputTips; for(var i =
* 0;i<list.length;i++){ inputTips = list.eq(i).attr("data-tips"); inputValue =
* list.eq(i).val().trim(); if(inputValue==""){ layer.msg(inputTips+"不能为空!")
* return false; } } }
*/
function photos(id, img, name, alt) {
var res = "";
res += '<div class="housesPhoto" data-id="' + id + '">';
res += '<img src="' + img + '" alt="' + alt + '" />';
res += "<p>" + name + "</p>";
res += "<br />";
res += "</div>";
return res;
};
//验证事件
//author:Mars
//time:2016-09-18
//输入框事例:<input type="password" id="comPwd" name="pwd" data-tip="确认密码" required="required" data-options="required:required,equal:newPwd">
//data-tip:当前输入框的名称,起到弹出层提示具体某个字段用途
//required="required":需要验证的标识符,起到检索的用途
//data-options:包含了所有需要验证的属性
//data-options——required:required:验证是否为空
//data-options——equal:newPwd:验证是否一致,事例newPwd为某个输入框的属性id,通过此id可进行2个输入框的一致验证
function submitCheck(e) {
var input = $(e).find(".form-control[required='required']");//获取所有需要验证的输入框
for (var i = 0; i < input.length; i++) {//循环所有需要验证的输入框
//获取当前验证框的验证属性对象
//属性事例:["required:required","equal:newPwd"]
for (var k = 0 ; k < input[i].attributes.length; k++) {
switch (input[i].attributes[k].name) {
case "dataoptions":
var option = input[i].attributes[k].value.split(",")//切割data-options的验证属性
break;
case "datatip":
var tip = input[i].attributes[k].nodeValue;//当前验证框的焦点名称,弹出层提示需用到,例如:账户名,密码
break;
case "id":
var node = input[i].attributes[k].nodeValue;//当前验证框的属性id,通过id来将弹出层定位在当前验证框后面
break;
}
}
//var option = input[i].attributes[1].value.split(",")
for (var j = 0; j < option.length; j++) {
//var tip = input[i].attributes[3].nodeValue;//当前验证框的焦点名称,弹出层提示需用到,例如:账户名,密码
//var node = input[i].attributes[7].nodeValue;//当前验证框的属性id,通过id来将弹出层定位在当前验证框后面
var val = input[i].value;//当前验证框的值
//获取验证框属性,通过:切割,获取第一位参数,即实现的验证方法
//required:验证是否为空
//type:验证某个类型,mobile,email,PositiveNum
//equal:验证是否和某个字段参数相同
switch (option[j].split(":")[0]) {
case "required":
if (val == "") {
layer.alert(tip + '不能为空!');
return false;
}
break;
case "type":
var tpNode = option[j].split(":")[1];//获取需要验证的类型
if (tpNode == "mobile") {
if (!isMobile(val)) {//调用验证手机号码方法,如果不符合,!isMobile(val)为true,进入验证提示
layer.alert('手机号码不合法!');
return false;
}
}else if (tpNode == "PositiveNum") {
if (!isPositiveNum(val)) {//调用验证正整数方法,如果不符合,!isPositiveNum(val)为true,进入验证提示
layer.alert(tip+'请填写正整数');
return false;
}
}
break;
case "equal":
var eqNode = option[j].split(":")[1];//获取需要验证是否一致的输入框的属性id
if (val != document.getElementById(eqNode).value) {//$("#"+eqNode).val().trim():jquery写法,获取验证一致的输入框的值
layer.alert(tip + '不相同!');
return false;
}
break;
}
}
}
return true;
}
function isPositiveNum(s){//是否为正整数
var re = /^[0-9]*[1-9][0-9]*$/ ;
return re.test(s)
}
function getTime(t) {
//var time = parseInt(t.substring(6, 19));
var date = new Date(t);
Y = date.getFullYear() + '-';
M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-';
D = (date.getDate() < 10 ? "0" + date.getDate() : date.getDate()) + " ";
h = (date.getHours() < 10 ? "0" + date.getHours() : date.getHours()) + ':';
m = (date.getMinutes() < 10 ? "0" + date.getMinutes() : date.getMinutes()) + ':';
s = (date.getSeconds() < 10 ? "0" + date.getSeconds() : date.getSeconds());
return Y + M + D + h + m + s;
}
function getTimeDay(t) {
//var time = parseInt(t.substring(6, 19));
var date = new Date(t);
Y = date.getFullYear() + '-';
M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-';
D = (date.getDate() < 10 ? "0" + date.getDate() : date.getDate()) + " ";
return Y + M + D;
}
浙公网安备 33010602011771号