
javascript
javascript
_格鲁特宝宝
这个作者很懒,什么都没留下…
展开
-
vue+cropperjs 插件,实现图片裁剪功能
cropperjs是一款非常强大却又简单的图片裁剪工具,它可以进行非常灵活的配置,支持手机端使用,支持包括IE9以上的现代浏览器。原创 2024-11-12 10:14:17 · 1334 阅读 · 0 评论 -
Echarts 利用多X轴实现未来15天天气预报
通过设置 grid.top 和 grid.bottom 设置白天和夜间天气展示区域。Echarts 利用多X轴实现未来15天天气预报原创 2024-03-22 15:39:12 · 1305 阅读 · 0 评论 -
Vue3 + Vite + ts引入本地图片
Vue3 + Vite + ts引入本地图片单张图片导入多张图片导入背景图片引入原创 2024-03-22 15:05:19 · 1837 阅读 · 1 评论 -
excel 文件上传时更改选中的文件出现错误net::ERR_UPLOAD_FILE_CHANGED
前端使用文件上传组件,上传电脑上本地文件,上传成功后,修改本地文件内容,提交上传会报错。原创 2023-05-15 16:17:54 · 715 阅读 · 1 评论 -
禁止网站被别人通过 iframe 引用
禁止网站被别人通过 iframe 引用的七种方案原创 2023-03-31 09:48:35 · 1168 阅读 · 0 评论 -
scrollIntoView 使用方法
behavior表示滚动方式。auto表示使用当前元素的scroll-behavior样式。instant和smooth表示直接滚到底和使用平滑滚动。block表示块级元素排列方向要滚动到的位置。对于默认的writing-mode: horizontal-tb来说,就是竖直方向。start表示将视口的顶部和元素顶部对齐;center表示将视口的中间和元素的中间对齐;end表示将视口的底部和元素底部对齐;nearest表示就近对齐。inline表示行内元素排列方向要滚动到的位置。原创 2022-11-27 01:37:36 · 659 阅读 · 0 评论 -
JS 去除数组空字符串、undefined、null
【代码】JS 去除数组空字符串、undefined、null。原创 2022-09-07 09:21:12 · 4274 阅读 · 0 评论 -
过滤 html 标签
代码】过滤html标签。原创 2022-07-29 10:19:19 · 414 阅读 · 0 评论 -
Vue 时间插件 moment 使用
this.$moment().subtract(10,'days').format("YYYY-MM-DD");//当前时间往后推10天。this.$moment(value).format("YYYY-MM-DD")//格式化指定日期value的格式年-月-日。()//获取当前月第一天是星期几this.$moment().format('MM')//获取当前月份。this.$moment().format("YYYY-MM-DD")//获取当前日期。...原创 2022-06-22 11:13:25 · 11192 阅读 · 0 评论 -
使用 qrcodejs2 生成自适应宽高的二维码
qrcodejs2 生成自适应宽高的二维码原创 2022-06-08 09:58:14 · 2510 阅读 · 2 评论 -
JS 数字千位分隔符且保留两位小数
数字千位分隔符且保留两位小数1、仅需要整数位千位分隔num.toLocaleString()2、仅需要保留两位小数num.toFixed(2)3、需要千位分隔符且带两位小数ThousandAndDecimal(num) { if(num) { return num.toFixed(2).replace(/(\d)(?=(\d{3})+\.)/g, '$1,'); } else { return '0.00' }}...原创 2022-04-20 17:30:03 · 3429 阅读 · 1 评论 -
数字和字母组合的密码正则表达式
数字和字母组合的密码正则表达式要求:由数字和字母组成,并且要同时含有数字和字母,且长度要在8-16位之间。/^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{8,16}$/注释:^ 匹配一行的开头位置(?![0-9]+$) 预测该位置后面不全是数字(?![a-zA-Z]+$) 预测该位置后面不全是字母[0-9A-Za-z] {8,16} 由8-16位数字或这字母组成$ 匹配行结尾位置注:(?!xxxx)是正则表达式的负向零宽断言一种原创 2022-04-20 11:23:37 · 6242 阅读 · 0 评论 -
Javascript 判断数字是否含有小数点
JavaScript 判断一个数字是否含有小数点,如果含有,则返回该数字;如果不含小数点,则在整数数值后面补两位小数 ".00":priceFormat(num){ if(!isNaN(num)){ return ( (num + '').indexOf('.') != -1 ) ? num: num.toFixed(2); }},https://blog.csdn.net/weixin_34198583/article/details/85756367.原创 2022-03-14 14:52:09 · 6387 阅读 · 1 评论 -
JS 用户信息脱敏显示星号
JS 用户信息脱敏显示星号姓名脱敏formatName(name) { // 姓名脱敏中间字符 let newStr; if (name.length === 2) { newStr = name.substr(0, 1) + '*'; } else if (name.length > 2) { var char = ''; for (var i = 0, len = name.length - 2; i <原创 2022-01-11 16:18:43 · 1210 阅读 · 0 评论 -
JS 实现千分位分隔符 2 - 没有小数位
function formatter (number) { const numbers = number.toString().split('').reverse() const segs = [] while (numbers.length) segs.push(numbers.splice(0, 3).join('')) return segs.join(',').split('').reverse().join('')} valueFormatter ({ value .原创 2021-12-16 10:15:07 · 990 阅读 · 0 评论 -
Vue 项目中锚点定位实现
要实现一个锚点定位的效果,传统方法是用 a 标签的 href 属性和 id 属性来做。不过并不能达到想要的效果,在Vue项目中,使用传统的在a标签的href属性中写id的方法无效,会导致浏览器的地址改变从而跳转到其他页面。vue-router 用的是 hash 模式,不能使用传统 a 标签的方式来做锚点定位。经过各种百度,发现好多用的是以下方式,但是经过实测并没有用,没有实现定位。(希望有大佬指导下)document.body.scrollTop = this.$el.queryS原创 2021-10-20 10:30:00 · 4385 阅读 · 3 评论 -
JS 判断对象中的属性是否都有值
【代码】JS 判断对象中的属性是否都有值。原创 2021-10-13 14:27:09 · 2750 阅读 · 0 评论 -
JS 实现千分位分隔符
formatMoney(num) { let reg=/\d{1,3}(?=(\d{3})+$)/g; return (num + '').replace(reg, '$&,'); }原创 2021-04-15 13:51:59 · 459 阅读 · 0 评论 -
JavaScript 正则表达式控制文本框输入<GrootBaby>
二、限制只能输入英文字母三、限制只能输入中文汉字四、限制只能输入数字 && 小数点五、限制只能输入数字 && 英文字母 六、限制只能输入数字 && 英文字母 && 中文汉字 七、限制不能输入特殊字符 八、限制只能输数字 && 英文字母 && 中文汉字 && 空格九、限制只能输数字 && 英文字母 && 中文汉字 && 小数点十一、格式化输入小写字母自动转大写十二、MAC 地址限制只能输入字母 && 数字原创 2021-04-14 18:02:58 · 407 阅读 · 0 评论 -
JS 截取数组的最后几个元素
arr.slice()slice() 方法可从已有的数组中返回选定的元素。语法arrayObject.slice(start,end)参数 描述 start 必需。规定从何处开始选取。如果是负数,那么它规定从数组尾部开始算起的位置。也就是说,-1 指最后一个元素,-2 指倒数第二个元素,以此类推。 end 可选。规定从何处结束选取。该参数是数组片断结束处的数组下标。如果没有指定该参数,那么切分的数组包含从 start 到数组结束的所有元素。如果这个参数是负数,那.原创 2021-03-26 15:15:48 · 19587 阅读 · 0 评论 -
JS 将对象拆开拼接成 URL
let url = "https://apis.map.qq.com/uri/v1/routeplan?"let data = { referer: 'CQPBZ-QRWCU-2RGVJ-44CGR-5WCY6-WVB5Q',};data.type = "drive"data.from = "我的位置"data.fromcoord = "我的位置经纬度"data.to = "目的地" data.tocoord = "目的地经纬度"Object.keys(data).map((key.原创 2021-03-25 17:52:00 · 891 阅读 · 0 评论 -
前端图片最优化压缩方案
/** * 压缩方法 * @param {string} file 文件 * @param {Number} quality 0~1之间*/function compressImg(file, quality) { if (file[0]) { return Promise.all(Array.from(file).map(e => compressImg(e, quality))) // 如果是 file 数组返回 Promise 数组 } else {.原创 2021-03-22 09:56:17 · 465 阅读 · 0 评论 -
JS && Vue 禁止输入框输入特殊符号或emoji表情
// 判断是否含有特殊符号let reg1 = /[`~!@#$%^&*()_\-+=<>?:"{}|,.\/;'\\[\]·~!@#¥%……&*()——\-+={}|《》?:“”【】、;‘’,。、]/im// 判断是否含有emoji表情let reg2 = /[\uD83C|\uD83D|\uD83E][\uDC00-\uDFFF][\u200D|\uFE0F]|[\uD83C|\uD83D|\uD83E][\uDC00-\uDFFF]|[0-9|*|#]\uFE0F\.原创 2021-03-12 16:32:40 · 5646 阅读 · 3 评论 -
正则验证车牌号码,包含新能源车牌
车牌号码校验正则校验代码function checkLicensePlate(str) { return /^(([京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领][A-Z](([0-9]{5}[DF])|([DF]([A-HJ-NP-Z0-9])[0-9]{4})))|([京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领][A-Z][A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9挂学警港澳使领]))$/.test(str);}车牌.原创 2021-03-08 09:27:05 · 2602 阅读 · 0 评论 -
根据身份证号获取生日、年龄、性别
根据身份证号获取生日、年龄、性别获取生日// 获取生日 getBirth(card) { var len = card.length; //身份证15位时,次序为省(3位)市(3位)年(2位)月(2位)日(2位)校验位(3位),皆为数字 if (len == '15') { var re_fifteen = /^(\d{6})(\d{2})(\d{2})(\d{2})(\d{3})$/; var arr_data = card.match(re_f...原创 2021-03-08 08:57:06 · 1033 阅读 · 0 评论 -
身份证号格式校验
// 身份证号格式校验testIdNO(value) { var vcity = { 11: "北京", 12: "天津", 13: "河北", 14: "山西", 15: "内蒙古", 21: "辽宁", 22: "吉林", 23: "黑龙江", 31: "上海", 32: "江苏", 33: "浙江", 34: "安徽", 35: "福建", 36: "江西", 37: "山东", 41: "河南", 42: "湖北", 43: "湖南", 44:.原创 2021-03-08 08:53:55 · 1385 阅读 · 0 评论 -
Vue infinite update loop 问题
最近在写一个数组渲染时,对拿到的源数据数组经过排序后,正常运行却出现爆红:代码如下:各种度娘后你的确导致了一个无限循环, 因为array.sort()改变了数组自身,导致了过滤器又一次被触发。确保在副本上对数组排序:return value.slice().sort(...)数组方法array.slice()用法:slice()方法会浅复制(shallow copy)数组的一部分到一个新的数组,并返回这个新数组。技巧:处理类数组对象slice...原创 2021-02-26 15:54:16 · 600 阅读 · 0 评论 -
JS 将输入框中输入的英文字母自动转换为大写的方法
输入框中小写字母自动转换为大写方法一用表单输入框的 onkeyup 属性和 JavaScript 的 toUpperCase() 方法来实现oninput="value=value.toUpperCase()"方法二网上搜索方法,以下方法会默认先显示输入的小写字母再置空,用户体验不是很好oninput="value=value.replace(/[^0-9A-Z]/g,'')"方法三Vant 组件有个formatter 属性可以用 toUpperCase() 方法默认将.原创 2020-10-16 10:51:32 · 2358 阅读 · 0 评论 -
ES6 新增 padStart() 方法和 padEnd() 方法
将一个字符串的长度规定,如果达不到这个长度,则向前/后补充一个值方法 参数 说明 padStart (num, val) 规定一个字符串长度为num,如果长度不够,往前补val(可选) padEnd (num, val) 规定一个字符串长度为num,如果长度不够,往后补val(可选) console.log('123'.padStart(5, '0')) // '00123'console.log('123'.padEnd(5,...原创 2020-09-25 16:26:13 · 307 阅读 · 0 评论 -
JS 操作数组字符串
字符串和数组之间的转换字符串转换为数组var string = '123,456,789';var stringResult = string.split(',');console.log(stringResult) // 输出["123", "456", "789"]string.split(",").map(Number); // 输出[123,456,789]JSON.parse("[" + string + "]"); // 输出[123,456,789]var原创 2020-07-16 20:35:07 · 443 阅读 · 0 评论 -
JS 动态给对象添加属性
let obj={};for(var i = 0; i < 10; i++){ eval("obj.text" + i + " = '请输入文本'");}原创 2020-06-19 17:44:45 · 637 阅读 · 0 评论 -
JS 校验身份证号真实性
if(!this.testIdNO(this.form.idNO)) { this.$toast('请输入真实身份证号');}testIdNO(value) { var vcity = { 11: "北京", 12: "天津", 13: "河北", 14: "山西", 15: "内蒙古", 21: "辽宁", 22: "吉林", 23: "黑龙江", 31: "上海", 32: "江苏", 33: "浙江", 34: "安徽", 35: "福建...原创 2020-06-19 17:41:12 · 504 阅读 · 0 评论 -
JSON对象和JSON字符串的区别
JSON对象和JSON字符串的区别JSON对象有时候在做项目的时候时常将这两个概念弄混淆,尤其是在使用springmvc的时候,后台@RequestBody接受的是一个json格式的字符串,一定是一个字符串。先介绍一下json对象,首先说到对象的概念,对象的属性是可以用:对象.属性进行调用的。例如:var person={"name":"zhangsan","sex":"男","...原创 2020-03-26 09:45:52 · 311 阅读 · 0 评论 -
forEach、for in 、 for of三者的区别
for循环 - 最原始的循环遍历var arr = [1,2,3,4]for(var i = 0 ; i< arr.length ; i++){ console.log(arr[i])}forEach从ES5开始 Javascript内置了forEach方法 用来遍历数组let arr = ['a', 'b', 'c', 'd']arr.forEach...原创 2020-03-13 12:33:08 · 305 阅读 · 0 评论 -
JS 遍历对象、数组总结
JS遍历对象总结1、使用Object.keys()遍历 返回一个数组,包括对象自身的(不含继承的)所有可枚举属性(不含Symbol属性)正在上传…重新上传取消var obj = {'0':'a','1':'b','2':'c'};Object.keys(obj).forEach(function(key){ console.log(key,obj[key]...原创 2020-03-13 11:22:42 · 355 阅读 · 0 评论 -
JS 获取地址栏某个参数参数值
function GetQueryString(param) { var reg = new RegExp("(^|&)" + param + "=([^&]*)(&|$)"); var r = window.location.search.substr(1).match(reg); if (r != null) return de...原创 2020-03-04 14:45:20 · 426 阅读 · 0 评论 -
JS 判断是否微信浏览器
$(function () { var ua = navigator.userAgent.toLowerCase(); var isWeixin = ua.indexOf('micromessenger') != -1; if (!isWeixin) { alert('这不是通过微信内置浏览器'); } else alert('估计这就是...原创 2019-03-01 09:59:30 · 407 阅读 · 0 评论 -
ECharts 异步加载数据及loading 动画
异步加载echarts 示例中的数据是在初始化后setOption中直接填入的,但是很多时候可能数据需要异步加载后再填入。ECharts 中实现异步数据的更新非常简单,在图表初始化后不管任何时候只要通过 jQuery 等工具异步获取数据后通过 setOption 填入数据和配置项就行。var myChart = echarts.init(document.getElementById('...原创 2018-12-03 13:20:42 · 11924 阅读 · 14 评论 -
JS 获取数组中的最大值或最小值
遍历方法:let tpl = [1,12,8,5];let max = tpl[0];for(let item of tpl){ if(max < item) max = item }console.log(max);使用apply方法:var arr = [1,12,8,5];console.log(Math.max.apply(null, a...原创 2019-09-06 11:36:50 · 387 阅读 · 0 评论 -
JS 插件----SyntaxHighlighter的使用
SyntaxHighlighter是一款用于web页面的代码着色工具,可以用来着色多种语言。今天我们通过实例来学习一下它的用法。SyntaxHighlighter的简单实例一、SyntaxHighlighter的代码流程如下1、将基本文件添加到页面:shCore.js和shCore.css2、添加想要的brushes(例如:shBrushJScript.js 对于JavaScri...原创 2018-08-16 17:51:55 · 6886 阅读 · 1 评论