- 博客(66)
- 资源 (4)
- 收藏
- 关注
原创 js中基于正则的多字符串分割split
注意:一定要将**\+|\-** 用括号括起来,因为我们想分割的特征是 任意个空格后面跟着加号或者减号,再跟着任意个空格, 而不是任意个空格后面跟着加号,或者减号跟着任意个空格。会导致加号和减号出现在分割结果中是因为:当我们使用正则进行分割时,如果正则中存在捕获,捕获的内容会被直接拼接到分割结果中。基于此,我们可以实现去除加号两边的空格而保留减号两边的空格的效果,即使这可能不会再实际中遇到。的结果)将被拼接到输出数组中。是包含捕获括号的正则表达式,则每次。匹配时,捕获括号的结果(包括任何。
2023-08-03 16:13:45
1500
原创 自定义输入框focus效果实现
input{ border: none; outline: none; background: linear-gradient(to bottom, transparent 95%, red 95%) no-repeat; height: 30px; background-size: 0 100%; transition: background-size ease-in-out 0.5s; } ...
2022-05-23 23:35:59
367
原创 antdesign限制时间段选择
const disabledStartDate = (startValue: any)=> { if(startValue.isAfter(moment())){ return true; } if (!startValue || !endTime) { return false; } const startDate = moment(startValue.valueOf()) const endDate = moment(end
2022-05-19 19:43:15
487
原创 PermitRootLogin不生效,ssh允许root登录
1、sshd -T | grep etc查看当前sshd的配置文件位置2、修改PermitRootLogin为true3、重启sshd
2022-04-30 15:40:18
3014
原创 js文本拷贝到剪切版
function copyText (text) { if ((navigator as any).clipboard) { (navigator as any).clipboard.writeText(text); } else { const textarea = document.createElement('textarea'); document.body.appendChild(textarea); textarea.style.position =
2022-04-20 16:34:32
166
原创 线性插值动画
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title></head><body><canvas width="800" height="500" id="canvas"></canvas><script src="index.js"></
2022-04-15 15:32:15
342
原创 基于vue3,popperjs下拉框简易实现
<template> <input v-model="text" placeholder="请选择" id="trigger"/> <ul id="mylist" style="display: none"> <li>test1</li> <li>test2</li> <li>test3</li> <li>test4</li> <
2022-04-15 12:22:11
1874
原创 window.crypto.subtle进行rsa-oaep加密
const pemEncodedKey = `-----BEGIN PUBLIC KEY-----MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxiuhgssxHclogWzB7OGyvkIB+HGUO4hODykrz3c0/SBLJZc78mq7VaL3EnicGpoXFJkao3I+1C7MD5Jpa27bSc22veI0frbd/nbiSutvwAnf3rpVJEQtFTMz3v4OpSRcjOhIxKsL6iZ0JTt5++gksqeyrMt...
2022-03-02 14:12:55
1493
原创 konva缩放
this.stage.on('wheel', (e) => { const direction = e.evt.deltaY > 0 ? -0.1 : 0.1; this.scale = this.scale + direction; if (this.scale < 0.1) { this.scale = 0.1; return; } if (this.scale > 1) { ...
2021-10-30 20:32:41
1439
3
原创 service worker 缓存
this.addEventListener('install', function(event) { //安装应用 this.skipWaiting() event.waitUntil( caches.open('v3').then(function(cache) { return cache.addAll([ '/index.html', ]); }) );})
2021-07-12 18:24:59
318
原创 粘滞标题列表
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title></head><style> .sticky-dom{ position: sticky; top: 0; } .sticky-dom-parent{ pos
2021-06-25 18:54:49
86
原创 css整屏滚动
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title></head><style> html,body{ scroll-snap-type: y mandatory; height: 900px; overflow: auto;
2021-05-19 14:33:20
331
原创 javascript数字范围
-Infinity < -MAX_VALUE < MIN_SAFE_INTEGER = -MAX_SAFE_INTEGER < -1 < -MIN_VALUE < 0 < MIN_VALUE < 1 < MAX_SAFE_INTEGER < MAX_VALUE < Infinity-MIN_VALUE ~ MIN_VALUE 范围内的限制为0MIN_VALUE ~ MAX_SAFE_INTEGER 和 -MAX_SAFE_INTEGER
2021-03-21 17:14:47
132
原创 排序算法
冒泡排序function bubbleSort(arr){ let len = arr.length; for(let i = 0; i < len -1; i++){ for(let j = 0; j < len -1 - i; j++){ if(arr[j] > arr[j+1]){ swap(arr,j,j+1) } } } return
2021-03-12 23:24:24
94
原创 js正则表达式分组捕获
捕获const reg = /I have a (apple|watermelon)/;reg.test('I have a apple') // RegExp.$1 = 'apple'利用捕获循环处理字符串比如去掉’[[[aaa]]]'中的中括号(这里只是举个例,可以这样来处理更复杂的模板字符串)const reg = /\[([a-zA-z]*)\]/;let str = '[[[aaa]]]';while(reg.test(str)){ str = str.replace(re
2021-03-10 20:18:42
743
原创 html pointer-events
参考 https://www.cnblogs.com/kunmomo/p/11752669.htmlhttps://developer.mozilla.org/zh-CN/docs/Web/CSS/pointer-events
2021-03-07 22:40:23
212
原创 d3.js zoom中的translateBy,scaleBy,translateTo,scaleTo
文章中假设svg的长为width,高为height1.scaleTozoom.scaleTo(selector,n,[x1,y1])scaleTo的放大过程:将svg的坐标x,y都放大到n倍,目标元素的相应属性也放大n倍,同时会将目标进行位移,默认的位移大小为x = 0 - width / 2 *( n - 1) , y = 0 - height/ 2 *( n - 1)。所以当元素放大后默认情况下元素会向左上方位移 ,但是当我们放大时,大多数情况我们还是希望元素还是停留在当前的一个位置,仅仅是他
2021-03-06 14:46:02
1800
原创 sequelize执行不同配置(环境)的数据库升级
{ "development": { "username": "root", "password": "123456", "database": "db", "host": "127.0.0.1", "dialect": "mysql" }, "test": { "username": "root", "password": "123456", "database": "test", "host": "127.0.0.1",
2021-02-13 16:10:29
372
原创 css控制文本的显示行数,多余显示省略号
//由于-webkit-line-clamp,-webkit-box-orient只有谷歌和部分其他版本的其他浏览器支持, //所以需要对不支持的浏览器也做些兼容 line-height: 22px; height: 66px; //在支持的浏览器上文本只会显示3行,多余会显示省略号 overflow: hidden; display: -webkit-box; -webkit-line-clamp...
2021-02-06 01:02:37
320
原创 egg使用ctx.getFileStream进行文件上传
stream = await ctx.getFileStream();stream.filename :文件名称,stream.fields:附加字段页面: formData.append('width', width) formData.append('height', height) formData.append('type', "1") formData.append('filename', file)formData.append(‘filename’, fi.
2021-02-03 22:14:12
2670
原创 egg.js中sequelize配置项
sequelize: {dialect: ‘mysql’,host: ‘127.0.0.1’,username: ‘root’,password: ‘123456’,port: 3306,database: ‘db’,define: {//查询是对字段驼峰类型和下划线类型进行转换underscored: true,//使用自己配置的表名,避免sequelize自动将表名转换为复数freezeTableName: true,//对于create_at,和update_at,禁止查出cr
2020-11-22 23:24:07
984
原创 egg.js单元测试中测试依赖session的接口
比如在Controller中,我们需要通过确认session中的userId验证用户是否登录过,在单元测试中便可以通过app.mockSession来模拟一个session app.mockSession({ userId: '1' });
2020-11-22 17:36:21
253
原创 egg.js测试文件上传的接口
'use strict';const { app } = require('egg-mock/bootstrap');describe('test/app/controller/picture.test.js', () => { it('should POST /api/picture', () => { app.mockCsrf(); return app.httpRequest() .post('/api/picture') .set('
2020-11-22 02:50:40
308
原创 centos7 mysql安装
centos7 mysql安装步骤问题步骤官网https://dev.mysql.com/downloads/repo/yum/下载 Yum 资源包wget http://repo.mysql.com/mysql80-community-release-el7-3.noarch.rpmrpm -ivh mysql80-community-release-el7-3.noarch.rpmyum updateyum install mysql-server权限设置chown mysql:mysq
2020-11-21 13:04:10
160
原创 web安全
XSS 攻击 ,对 Web 页面注入脚本,使用 JavaScript 窃取用户信息,诱导用户操作CSRF 攻击,伪造用户请求向网站发起恶意请求钓鱼攻击,利用网站的跳转链接或者图片制造钓鱼陷阱HTTP参数污染,利用对参数格式验证的不完善,对服务器进行参数注入攻击远程代码执行,用户通过浏览器提交执行命令,由于服务器端没有针对执行函数做过滤,导致在没有指定绝对路径的情况下就执行命令...
2020-10-01 23:06:05
96
原创 react-native项目创建
依赖安装必要的依赖包括:Node:建议安装最新的Python:2.xJDK :1.8,不支持1.9Android Studio:主要安装一些其他的依赖,如果你这时候还没安装,你可以在安装的时候确保已经安装了Android SDK,Android SDK Platform,Performance (Intel ® HAXM),Android Virtual Device,如果你之前已经安装过了Android Studio,此时你可以在Android Studio的Tools的SDK Manager中
2020-08-16 23:29:44
222
原创 react测试(5)jest Mock Functions
Mock 函数可以使用来测试代码之间的连接,即用来测试函数被调用的参数,返回值,调用了几次等等测试函数被调用的参数和返回值创建一个Mock Functions //定义一个调用一定此时回调函数的方法 function useCallBack(callback, count){ for (let i = 0; i < count; i++){ callback(i) } }
2020-08-08 17:54:58
556
原创 react 测试 (4) jest 异步代码测试
interface.js中放着调用接口的方法,假设我们要测试greeting接口的返回数据,或者经过业务处理后的数据//interface.jsimport axios from "axios"//返回数据型export const getGreeting = function(){ return new Promise((resolve, reject) => { axios.post("/greeting").then(response => resolv
2020-08-08 12:26:48
409
react项目demo
2019-04-06
springcloud链路追踪demo(基于zipkin)
2019-04-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人