0%

Js一些常用demo

JavaScript一些常用demo汇总

获取显示当前时间

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
/* jQuery代码 */
$(function () {
$("#now-time").attr("onselectstart", "return false");//禁止选中文字
$("#now-time").text(currentTime());
setInterval(function () {
$("#now-time").text(currentTime());
}, 1000);
/**
* 获取最新时间
* @returns {String}
*/
function currentTime() {
var date = new Date();
var time;
var year = date.getFullYear();
var month = date.getMonth()+1;
var day = date.getDate();
var hour = date.getHours();
var minute = date.getMinutes();
var second = date.getSeconds();
hour = (hour < 10) ? ("0" + hour) : hour;
minute = (minute < 10) ? ("0" + minute) : minute;
second = (second < 10) ? ("0" + second) : second;
time = year + "年" + month + "月" + day + "日" + " " + hour + ":" + minute + ":" + second;
return time;
}
});

前台处理字符串

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

/**
* 处理问题字符串
* @param {String} 要处理的字符串。
*/
function formatStr(str) {
str = str.replace(/^\s+|\s+$/g, "");//去掉前后空格
//str = str.replace(/\s+/g,"");//去掉空格
//str=str.replace( /^\s/, '');//去掉左空格
//str=str.replace(/(\s$)/g, "");//去掉右空格
let div = document.createElement('div');
div.textContent = str;//利用textContent属性转化"<",">","&","'"等字符
let formatString = div.innerHTML;
return formatString;
}

格式化运算表达式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51

/**
* 格式化表达式
* @param {String} 待格式化的表达式。
* @returns {String} 格式化后的表达式。
*/
function formatText(text) {
var reg = /[.0-9]/;
var tempText = "";
var numTemp = [];
var charTemp = [];
for (var i = 0, j = 0; i < text.length; i++) {
if (i === 0 && !reg.test(text[0])) {
numTemp[0] = "";
charTemp[0] = text[0];
j++;
} else if (i === 0 && reg.test(text[0]) && text.length === 1) {
numTemp[0] = text[i];
charTemp[0] = "";
} else if (i !== text.length - 1 && reg.test(text[i])) {
tempText += text[i];
} else if (i !== text.length - 1 && !reg.test(text[i])) {
numTemp[j] = parseFloat(tempText);
tempText = "";
charTemp[j] = text[i];
j++;
} else if (i === text.length - 1 && reg.test(text[text.length - 1]) && text.length > 1) {
tempText += text[i];
numTemp[j] = parseFloat(tempText);
numTemp[j + 1] = "";
tempText = "";
charTemp[j] = "";
} else if (i === text.length - 1 && !reg.test(text[text.length - 1]) && text.length > 1) {
numTemp[j] = parseFloat(tempText);
numTemp[j + 1] = "";
tempText = "";
charTemp[j] = text[i];
}
}
text = "";
for (var i = 0; i < charTemp.length; i++) {
if (charTemp.length > 1 && i === charTemp.length - 1) {
text += numTemp[i] + charTemp[i] + numTemp[i + 1];
} else {
text += numTemp[i] + charTemp[i];
}
}
text = String(text);
return text;
}

onkeydown设置键盘事件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

/**
* 键盘事件
* @param {Event} 当前按下的按键。
*/
function addKeyboard(e) {
//console.log(e.key);//获取键值
var keyNum = window.event ? e.keyCode : e.which;
//console.log(keyNum);
if (keyNum === XXX) {
//do something
}
if (keyNum === XXX && e.altKey) {
//do something
}
if (keyNum === XXX && e.ctrlKey) {
//do something
}
}

数组处理

1
2
3
4
5
6
7
8
9
10
11
12
13

/* 第一种方法 */
let a = document.querySelectorAll("a");
for(let i = 0; i < a.length; i++){
console.log(a[i]);
}
--------------------------------------------------
/* 第二种方法 */
let A = document.querySelectorAll("a");
Array.prototype.filter.call(A, function (a) {
console.log(a);
});


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
/* 取第一个值 */
for (let key in response) {
result = response[key];
}

/* 循环处理数组/对象 */
$.each([array/object], function (key, val) {
//do something
});

/* 例a */
$.each([1, 2], function(key, value) {
alert(index + ': ' + value);
});
/* 这将产生两个信息 */
/* 0: 52 */
/* 1: 97 */

/* 例b */
let obj = {
"a": "AAA",
"b": "BBB"
};
$.each(obj, function(key, value) {
alert( key + ": " + value );
});
/* 这将产生两个信息 */
/* a: AAA */
/* b: BBB */

产生随机数

1
2
3
4
5
6
7
8
9
10
11
12

/**
* 产生随机数
* @param {Number} 随机数范围
* @returns {Number} 产生的随机数
*/
function getRandnum(range) {
var num = Math.random() * range;
num = parseInt(num);
return num;
}

控制台打印内容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function consoleInfo() {
console.log("%c博客名称%cDoubleAm", "line-height:28px;padding:4px;background:#a1afc9;color:#000;font-size:16px;margin-right:15px", "color:#3fa9f5;line-height:28px;font-size:16px;");
console.log("%c网站地址%chttps://hexiongbiao.cn", "line-height:28px;padding:4px;background:#a1afc9;color:#000;font-size:16px;margin-right:15px", "color:#00bc12;line-height:28px;font-size:16px;");
console.log("%c扣扣号码%c1005760694", "line-height:28px;padding:4px;background:#a1afc9;color:#000;font-size:16px;margin-right:15px", "color:#ff9900;line-height:28px;font-size:16px;");
console.log("%c桃李春风一杯酒,江湖夜雨十年灯!", "line-height:28px;padding:5px;color:#fff;font-weight:bolder;font-size:16px;background-color:chocolate;color:#fff;");
if (window.console && window.console.log) {
console.log(`%c页面加载消耗了 %c${(Math.round(100 * performance.now()) / 100 / 1e3).toFixed(2)}s`, "background: #fff;color: #333;text-shadow: 0 0 2px #eee, 0 0 3px #eee, 0 0 3px #eee, 0 0 2px #eee, 0 0 3px #eee;", "color:tomato;font-weight:bolder;");
localStorage.getItem("access") || localStorage.setItem("access", (new Date).getTime());
let e = new Date(parseInt(localStorage.getItem("access")));
let o = `${e.getFullYear()}${e.getMonth() + 1}${e.getDate()}日`;
let t = 0;
localStorage.getItem("hit") ? t = parseInt(localStorage.getItem("hit")) : localStorage.setItem("hit", 0);
localStorage.setItem("hit", ++t);
console.log(`%c这是你自 %c${o} %c以来第 %c${t} %c次在本站打开控制台,你想知道什么秘密吗~`, "", "color:chocolate;font-weight:bolder;", "", "color:chocolate;font-weight:bolder;", "");
}
}

禁止使用快捷键打开控制台

这个是闹着玩的,只需把右键点击事件取消,在把Ctrl+UF12这两个快捷键原本的事件取消,或者重新设置一个监听方法就可以了。

bulb