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.
132 lines
3.8 KiB
132 lines
3.8 KiB
//十六进制颜色值域RGB格式颜色值之间的相互转换
|
|
//-------------------------------------
|
|
//十六进制颜色值的正则表达式
|
|
var reg = /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/;
|
|
/*RGB颜色转换为16进制*/
|
|
String.prototype.colorHex = function () {
|
|
var that = this;
|
|
if (/^(rgb|RGB)/.test(that)) {
|
|
var aColor = that.replace(/(?:\(|\)|rgb|RGB)*/g, "").split(",");
|
|
var strHex = "#";
|
|
for (var i = 0; i < aColor.length; i++) {
|
|
var hex = Number(aColor[i]).toString(16);
|
|
if (hex === "0") {
|
|
hex += hex;
|
|
}
|
|
strHex += hex;
|
|
}
|
|
if (strHex.length !== 7) {
|
|
strHex = that;
|
|
}
|
|
return strHex;
|
|
} else if (reg.test(that)) {
|
|
var aNum = that.replace(/#/, "").split("");
|
|
if (aNum.length === 6) {
|
|
return that;
|
|
} else if (aNum.length === 3) {
|
|
var numHex = "#";
|
|
for (var i = 0; i < aNum.length; i += 1) {
|
|
numHex += (aNum[i] + aNum[i]);
|
|
}
|
|
return numHex;
|
|
}
|
|
} else {
|
|
return that;
|
|
}
|
|
};
|
|
//-------------------------------------------------
|
|
/*16进制颜色转为RGB格式*/
|
|
String.prototype.colorRgb = function () {
|
|
var sColor = this.toLowerCase();
|
|
if (sColor && reg.test(sColor)) {
|
|
if (sColor.length === 4) {
|
|
var sColorNew = "#";
|
|
for (var i = 1; i < 4; i += 1) {
|
|
sColorNew += sColor.slice(i, i + 1).concat(sColor.slice(i, i + 1));
|
|
}
|
|
sColor = sColorNew;
|
|
}
|
|
//处理六位的颜色值
|
|
var sColorChange = [];
|
|
for (var i = 1; i < 7; i += 2) {
|
|
sColorChange.push(parseInt("0x" + sColor.slice(i, i + 2)));
|
|
}
|
|
return "RGB(" + sColorChange.join(",") + ")";
|
|
} else {
|
|
return sColor;
|
|
}
|
|
};
|
|
//-------------------------------------------------
|
|
// var sRgb = "RGB(255, 255, 255)" , sHex = "#00538b";
|
|
// var sHexColor = sRgb.colorHex();//转换为十六进制方法
|
|
// var sRgbColor = sHex.colorRgb();//转为RGB颜色值的方法
|
|
// console.log(sHexColor);
|
|
// console.log(sRgbColor);
|
|
|
|
|
|
/**
|
|
* 获取指定年月的最后一天
|
|
* @param {Number} year 年份,公元年
|
|
* @param {Number} month 月份有效值1~12
|
|
* @return {Number} 返回1~31之间的一个数
|
|
*/
|
|
function getLastDay(year, month) {
|
|
var d = new Date(0);
|
|
if (month == 12) {
|
|
d.setUTCFullYear(year + 1);
|
|
d.setUTCMonth(0);
|
|
} else {
|
|
d.setUTCFullYear(year);
|
|
d.setUTCMonth(month);
|
|
}
|
|
d.setTime(d.getTime() - 1);
|
|
return d.getUTCDate();
|
|
}
|
|
|
|
/**
|
|
* 功能:转换字符串到日期
|
|
*/
|
|
function convertStrToDate(date) {
|
|
date = date.substring(0, 19);
|
|
date = date.replace(/-/g, '/');
|
|
var timestamp = new Date(date).getTime();
|
|
// 根据毫秒数构建 Date 对象
|
|
var d1 = new Date(timestamp);
|
|
return d1;
|
|
}
|
|
|
|
//迭代方式实现
|
|
function padding1(num, length) {
|
|
for (var len = (num + "").length; len < length; len = num.length) {
|
|
num = "0" + num;
|
|
}
|
|
return num;
|
|
}
|
|
|
|
//动态加载js并运行
|
|
//用法
|
|
//loadJS('file.js',function(){
|
|
// alert(1);
|
|
//});
|
|
function loadJS(url, callback) {
|
|
var script = document.createElement('script'),
|
|
fn = callback || function () {
|
|
};
|
|
script.type = 'text/javascript';
|
|
//IE
|
|
if (script.readyState) {
|
|
script.onreadystatechange = function () {
|
|
if (script.readyState == 'loaded' || script.readyState == 'complete') {
|
|
script.onreadystatechange = null;
|
|
fn();
|
|
}
|
|
};
|
|
} else {
|
|
//其他浏览器
|
|
script.onload = function () {
|
|
fn();
|
|
};
|
|
}
|
|
script.src = url;
|
|
document.getElementsByTagName('head')[0].appendChild(script);
|
|
} |