Js实用函数合集

返回字符串的长度,所谓字符串的长度是指其包含的字符的个数。

toLowerCase

将整个字符串转成小写字母。

var lower_string = a.toLowerCase();

//lower_string = “hello”

toUpperCase

将整个字符串转成大写字母。

var upper_string = a.toUpperCase();

//upper_string = “HELLO”

1.Js天数相加获取新日期


function timestampToTime(timestamp) {

var date = new Date(timestamp);//时间戳为10位需*1000,时间戳为13位的话不需乘1000

var Y = date.getFullYear();

var M = (date.getMonth()+1 < 10 ? ‘0’+(date.getMonth()+1):date.getMonth()+1);

var D = (date.getDate()< 10 ? ‘0’+date.getDate():date.getDate());

return Y+“年”+M+“月”+D+“日”;

}

实用方法:

在这里插入图片描述

在这里插入图片描述

2.获取当前日期(yyyyMMdd格式)


function getNowFormatDate() {

var date = new Date();

var year = date.getFullYear();

var month = date.getMonth() + 1;

var strDate = date.getDate();

if (month >= 1 && month <= 9) {

month = “0” + month;

}

if (strDate >= 0 && strDate <= 9) {

strDate = “0” + strDate;

}

var currentdate = year + “年” + month + “月” + strDate + “日”;

$(“#time”).html(currentdate)

return currentdate;

}

3.四舍五入


function toDecimal(x) {

var f = parseFloat(x);

if (isNaN(f)) {

return;

}

f = Math.round(x*100)/100;

return f;

}

4.Js将数字转成中文大写数字


var digitUppercase = function(n) {

var fraction = [‘角’, ‘分’];

var digit = [

‘零’, ‘壹’, ‘贰’, ‘叁’, ‘肆’,

‘伍’, ‘陆’, ‘柒’, ‘捌’, ‘玖’

];

var unit = [

[‘元’, ‘万’, ‘亿’],

[‘’, ‘拾’, ‘佰’, ‘仟’]

];

var head = n < 0 ? ‘欠’ : ‘’;

n = Math.abs(n);

var s = ‘’;

for (var i = 0; i < fraction.length; i++) {

s += (digit[Math.floor(n * 10 * Math.pow(10, i)) % 10] + fraction[i]).replace(/零./, ‘’);

}

s = s || ‘整’;

n = Math.floor(n);

for (var i = 0; i < unit[0].length && n > 0; i++) {

var p = ‘’;

for (var j = 0; j < unit[1].length && n > 0; j++) {

p = digit[n % 10] + unit[1][j] + p;

n = Math.floor(n / 10);

}

s = p.replace(/(零.)*零KaTeX parse error: Expected group after '^' at position 17: …, '').replace(/^̲/, ‘零’) + unit[0][i] + s;

}

return head + s.replace(/(零.)*零元/, ‘元’)

.replace(/(零.)+/g, ‘零’)

.replace(/^整$/, ‘零元整’);

}

5.判断数据是否为空


function dataIsNotNull(data) {

if (data != null && typeof(data) != “undefined” && data != “” && data != “‘’” && data != ‘’) {

return true;

}

else {

return false;

}

}

6.字符串日期比较


/* 比较俩个字符串时间A-B

  • A>B return 1

  • A<B return -1

  • A=B return 0

*/

$.compareTime = function(time1,time2) {

if(new Date(time1.replace(“-”, “/”).replace(“-”, “/”)).getTime() > new Date(time2.replace(“-”, “/”).replace(“-”, “/”)).getTime()) {

return 1;

}else if(new Date(time1.replace(“-”, “/”).replace(“-”, “/”)).getTime() < new Date(time2.replace(“-”, “/”).replace(“-”, “/”)).getTime()) {

return -1;

}else if(new Date(time1.replace(“-”, “/”).replace(“-”, “/”)).getTime() == new Date(time2.replace(“-”, “/”).replace(“-”, “/”)).getTime()) {

return 0;

}else {

return 2;

}

};

7.验证邮件


function verifyEmailAddress(strEmail){

var myReg = /1+@([a-zA-Z0-9-]+.)+[a-zA-Z]{2,3}$/;

return myReg.test(strEmail);

}

8.判断是否为日期数据


function itIsDate(DateString , Dilimeter)

{

if (DateString==null) return false;

if (Dilimeter==‘’ || Dilimeter==null)

Dilimeter = ‘-’;

var tempy=‘’;

var tempm=‘’;

var tempd=‘’;

var tempArray;

if (DateString.length<8 && DateString.length>10)

return false;

tempArray = DateString.split(Dilimeter);

if (tempArray.length!=3)

return false;

if (tempArray[0].length==4)

{

tempy = tempArray[0];

tempd = tempArray[2];

}

else

{

tempy = tempArray[2];

tempd = tempArray[1];

}

tempm = tempArray[1];

var tDateString = tempy + ‘/’+tempm + ‘/’+tempd+’ 8:0:0’;//加八小时是因为我们处于东八区

var tempDate = new Date(tDateString);

if (isNaN(tempDate))

return false;

if (((tempDate.getUTCFullYear()).toString()==tempy) && (tempDate.getMonth()==parseInt(tempm)-1) && (tempDate.getDate()==parseInt(tempd)))

{

return true;

}

else

{

return false;

}

}

9.复选框的全选与取消


function CheckAll(form){

var length = form.itemId.length;

var tocheck = form.chkall.checked;

if (length)

for (var i=0; i<length; i++){

if (form.itemId[i].disabled != true){

form.itemId[i].checked = tocheck;

}

}

else {

if (form.itemId.disabled !=true){

form.itemId.checked = tocheck;

}

}

}

10.数字输入控制


function InputIntNumberCheck(){

//为支持IE 或 Netscape

var theEvent=window.event || arguments.callee.caller.arguments[0];

var elm ;

var ver = navigator.appVersion;

if (ver.indexOf(“MSIE”) != -1){ // IE

if ( !((theEvent.keyCode >=48)&&(theEvent.keyCode<=57))){

theEvent.keyCode=0;

}

}else{ // Netscape

if ( !((theEvent.which >=48)&&(theEvent.which<=57))){

theEvent.stopPropagation();

theEvent.preventDefault();

}

}

//

}

11.设置以及获取cookie


function setCookie(name, value, Hours) {

var d = new Date();

var offset = 8;

var utc = d.getTime() + (d.getTimezoneOffset() * 60000);

var nd = utc + (3600000 * offset);

var exp = new Date(nd);

exp.setTime(exp.getTime() + Hours * 60 * 60 * 1000);

document.cookie = name + “=” + escape(value) + “;path=/;expires=” + exp.toGMTString() + “;domain=360doc.com;”

}

function getCookie(name) {

var arr = document.cookie.match(new RegExp(“(^| )” + name + “=([^;]*)(;|$)”));

if (arr != null) return unescape(arr[2]);

return null

}

12.数据排序


function sort(arr, type = 1) {

return arr.sort((a, b) => {

switch (type) {

case 1:

return a - b;

case 2:

return b - a;

case 3:

return Math.random() - 0.5;

default:

return arr;

}

})

}

13.记忆函数(缓存函数运算结果)


function cached(fn) {

let cache = Object.create(null);

return function cachedFn(str) {

let hit = cache[str];

return hit || (cache[str] = fn(str))

}

}

14.获取浏览器信息


function getExplorerInfo() {

let t = navigator.userAgent.toLowerCase();

return 0 <= t.indexOf(“msie”) ? { //ie < 11

type: “IE”,

version: Number(t.match(/msie ([\d]+)/)[1])

} : !!t.match(/trident/.+?rv:(([\d.]+))/) ? { // ie 11

type: “IE”,

version: 11

} : 0 <= t.indexOf(“edge”) ? {

type: “Edge”,

version: Number(t.match(/edge/([\d]+)/)[1])

} : 0 <= t.indexOf(“firefox”) ? {

type: “Firefox”,

version: Number(t.match(/firefox/([\d]+)/)[1])

} : 0 <= t.indexOf(“chrome”) ? {

type: “Chrome”,

version: Number(t.match(/chrome/([\d]+)/)[1])

} : 0 <= t.indexOf(“opera”) ? {

type: “Opera”,

version: Number(t.match(/opera.([\d]+)/)[1])

} : 0 <= t.indexOf(“Safari”) ? {

type: “Safari”,

version: Number(t.match(/version/([\d]+)/)[1])

} : {

type: t,

version: -1

}

}

15.数组去重 返回一个新数组


function unique(arr){

if(!isArrayLink(arr)){ //不是类数组对象

return arr

}

let result = []

let objarr = []

let obj = Object.create(null)

arr.forEach(item => {

if(isStatic(item)){//是除了symbol外的原始数据

let key = item + ‘_’ + getRawType(item);

if(!obj[key]){

obj[key] = true

result.push(item)

}

}else{//引用类型及symbol

if(!objarr.includes(item)){

objarr.push(item)

result.push(item)

}

}

})

return resulte

}

16.Base64数据导出文件 文件下载


function downloadFile(filename, data){

let DownloadLink = document.createElement(‘a’);

if ( DownloadLink ){

document.body.appendChild(DownloadLink);

DownloadLink.style = ‘display: none’;

DownloadLink.download = filename;

DownloadLink.href = data;

if ( document.createEvent ){

let DownloadEvt = document.createEvent(‘MouseEvents’);

DownloadEvt.initEvent(‘click’, true, false);

DownloadLink.dispatchEvent(DownloadEvt);

}

else if ( document.createEventObject )

DownloadLink.fireEvent(‘onclick’);

else if (typeof DownloadLink.onclick == ‘function’ )

DownloadLink.onclick();

document.body.removeChild(DownloadLink);

}

}

17.全屏


function toFullScreen(){

let elem = document.body;

elem.webkitRequestFullScreen

? elem.webkitRequestFullScreen()
elem.mozRequestFullScreen
? elem.mozRequestFullScreen()
elem.msRequestFullscreen
? elem.msRequestFullscreen()
elem.requestFullScreen
? elem.requestFullScreen()
alert(“浏览器不支持全屏”);

}

18.退出全屏


function toFullScreen(){

let elem = document.body;

elem.webkitRequestFullScreen

? elem.webkitRequestFullScreen()
elem.mozRequestFullScreen
? elem.mozRequestFullScreen()
elem.msRequestFullscreen
? elem.msRequestFullscreen()
elem.requestFullScreen
? elem.requestFullScreen()
alert(“浏览器不支持全屏”);

}

19.求出数组中最大非NaN值


function max(arr){

arr = arr.filter(item => !_isNaN(item))

return arr.length ? Math.max.apply(null, arr) : undefined

}

//max([1, 2, ‘11’, null, ‘fdf’, []]) ==> 11

20.求出数组中最小非NaN值


function min(arr){

arr = arr.filter(item => !_isNaN(item))

return arr.length ? Math.min.apply(null, arr) : undefined

}

//min([1, 2, ‘11’, null, ‘fdf’, []]) ==> 1

21.使用正则验证数字


function isNumber(val){

var regPos = /^\d+(.\d+)?$/; //非负浮点数

var regNeg = /^(-(([0-9]+.[0-9][1-9][0-9])|([0-9][1-9][0-9].[0-9]+)|([0-9][1-9][0-9])))$/; //负浮点数

if(regPos.test(val) || regNeg.test(val)){

return true;

}else{

return false;

}

}

22.验证数组是否有重复元素


function hasRepeatValue(a) {

return /(\x0f[^\x0f]+)\x0f[\s\S]*\1/.test(“\x0f” + a.join(“\x0f\x0f”) + “\x0f”);

}

23.提取身份证中性别及出生日期信息(身份证号 倒数第二位是性别,奇数为男,偶数为女)


function getIdcardData(){

var ido=document.getElementById(‘idCardNumberHandle’);//身份证号input元素的ID

var bd=document.getElementById(‘birthdayHandle’);

var sex=document.getElementById(‘sexHandle’);

if(!/^\d{6}((?:19|20)((?:\d{2}(?:0[13578]|1[02])(?:0[1-9]|[12]\d|3[01]))|(?:\d{2}(?:0[13456789]|1[012])(?:0[1-9]|[12]\d|30))|(?:\d{2}02(?:0[1-9]|1\d|2[0-8]))|(?😦?:0[48]|[2468][048]|[13579][26])0229)))\d{2}(\d)[xX\d]$/.test(ido.value)){

alert(‘身份证号非法.’);

return;

}

bd.value=(RegExp.$1).substr(0,4)+‘-’+(RegExp.$1).substr(4,2)+‘-’+(RegExp.$1).substr(6,2);//设置出生日期

ex.value=(parseInt(ido.value.charAt(ido.value.length-2))%2==0?‘女’:‘男’);//设置性别

}

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

惊喜

最后还准备了一套上面资料对应的面试题(有答案哦)和面试时的高频面试算法题(如果面试准备时间不够,那么集中把这些算法题做完即可,命中率高达85%+)

image.png

image.png

《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门即可获取!
lue=(parseInt(ido.value.charAt(ido.value.length-2))%2==0?‘女’:‘男’);//设置性别

}

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。[外链图片转存中…(img-z6L7ZdgB-1712165270982)]

[外链图片转存中…(img-slX8yerQ-1712165270983)]

[外链图片转存中…(img-mObLCa4H-1712165270983)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

惊喜

最后还准备了一套上面资料对应的面试题(有答案哦)和面试时的高频面试算法题(如果面试准备时间不够,那么集中把这些算法题做完即可,命中率高达85%+)

[外链图片转存中…(img-iHRRqdPe-1712165270984)]

[外链图片转存中…(img-9sydgD4B-1712165270984)]

《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门即可获取!


  1. a-zA-Z0-9-.- ↩︎

  • 23
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值