第三方登录
大家经常被注册登录繁琐的步骤击退,经常进几个不同的网站要输入几次用户密码,特别繁琐
所以社交账号登录出现了,也就是说用QQ微信微博等社交账号就可以登录其他网站
OAuth 2.0是用于授权的行业标准协议。OAuth 2.0致力于简化客户端开发人员,同时为Web应用程序,桌面应用程序,移动电话和客厅设备提供特定的授权流程。该规范及其扩展正在IETF OAuth工作组内开发。
Oauth 2.0文档
流程图如下:
+--------+ +---------------+| |--(A)- Authorization Request ->| Resource || | | Owner || |<-(B)-- Authorization Grant ---| || | +----------- ...
js网页离开时标签栏闪烁效果
之前有朋友问我博客里浏览器标签栏闪烁效果怎么做的
今天把代码贴出来吧
// 使用message对象封装消息 var message = { time: 0, title: document.title, timer: null, // 显示新消息提示 show: function () { var title = message.title.replace("【 】", "").replace("【新消息】", ""); // 定时器,设置消息切换频率闪烁效果就此产生 message.timer = setTimeout(function () { message.time++; mess ...
安全密码正则
当你回首往事时,不因碌碌无为而悔恨,不为虚度年华而羞耻,那你就可以很骄傲地和自己讲,你不负此生!
今天分享一个密码的正则,密码必须包含大、小写字母、数字、特殊符号至少三种,且长度为8-20
^(?![a-zA-Z]+$)(?![A-Z0-9]+$)(?![A-Z\W_!@#$%^&*`~()-+=]+$)(?![a-z0-9]+$)(?![a-z\W_!@#$%^&*`~()-+=]+$)(?![0-9\W_!@#$%^&*`~()-+=]+$)[a-zA-Z0-9\W_!@#$%^&*`~()-+=]{8,20}$
javascript代码
if (!(/^(?![a-zA-Z]+$)(?![A-Z0-9]+$)(?![A-Z\W_!@#$%^&*`~()-+=]+$)(?![a-z0-9]+$)(?![a-z\W_!@#$%^&*`~()-+=]+$)(?![0-9\W_!@#$%^&*`~()-+=]+$)[a-zA-Z0-9\W_!@#$%^&*`~()-+=]{8,20 ...
PS制作GIF
昨天写了篇博客,是关于CSS实现图片旋转的,群里的小伙伴跟我说博客里看不到效果让我做个GIF。。。那我今天就来写篇如何用PhotoShop制作GIF
我们先把图片拖入ps
然后解锁背景图层
然后选中图层
Ctrl+J复制图层
然后给每个图层调整角度旋转。。。
选中图层然后按Ctrl+T
然后拖动
重复步骤
然后点窗口->时间轴
然后点击从图层建立帧
调整时间
文件->存储为web所用格式
选择gif
点击存储
然后就做好了
简单CSS实现图片旋转
图片旋转~
代码
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> img { width: 200px; height: auto; margin: 20% auto; animation: myrotate 3s linear infinite; -webkit-animation: myrotate 3s linear infinite; } ...
兼容IE浏览器
今天客户说他那边网站崩了,让客户截了个图,看到是ie浏览器。。。我瞬间的反应是崩溃的
所以才有了这篇博客
这里分享一个小工具,能把ES6语法转成IE支持的语法
使用方式很简单
解压,用vscode打开
控制台输入cnpm i
然后把你的js文件放到src\js下面
转换前是这样的
我们npm run build一遍
可以看到我们的dist目录下面已经生成了转换好的js了
2020年,竟然还有人用IE。。。
下载链接
js函数去重
记一个去重函数
var array = ["ruben", "ruben", "快乐", "阿超", "快乐"]console.log(array)array = Array.from(new Set(array))console.log(array)
输出结果
字符串的split和join
split() 将字符串拆分成数组
join() 将数组合并
参数为分隔符
两套代码
#JavaScriptvar str = "ruben";var array = str.split('');array.forEach(s => console.log(s));str = array.join('');console.log(str);
以及
//javaString str = "ruben";String[] array = str.split("");for (String s : array) { System.out.println(s);}str = String.join("", array);System.out.println(str);
Bigdecimal
转载,原文
一、简介 Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算。双精度浮点型变量double可以处理16位有效数。在实际应用中,需要对更大或者更小的数进行运算和处理。float和double只能用来做科学计算或者是工程计算,在商业计算中要用java.math.BigDecimal。BigDecimal所创建的是对象,我们不能使用传统的+、-、*、/等算术运算符直接对其对象进行数学运算,而必须调用其相对应的方法。方法中的参数也必须是BigDecimal的对象。构造器是类的特殊方法,专门用来创建对象,特别是带有参数的对象。
二、构造器描述BigDecimal(int) 创建一个具有参数所指定整数值的对象。BigDecimal(double) 创建一个具有参数所指定双精度值的对象。BigDecimal(long) 创建一个具有参数所指定长整数值的对象。BigDecimal(String) 创建一个具有参数所指定以字符串表示的数值的对象。
三、方法描述add(BigDecimal) BigDecimal对象中的 ...
mysql一次给数据库所有表加字段
执行脚本
DROP PROCEDUREIF EXISTS addColumn;DELIMITER $$CREATE PROCEDURE addColumn () BEGIN-- 定义表名变量 DECLARE s_tablename VARCHAR ( 100 );/*显示表的数据库中的所有表SELECT table_name FROM information_schema.tables WHERE table_schema='databasename' Order by table_name ;*/#显示所有 DECLARE cur_table_structure CURSOR FOR SELECT table_name FROM INFORMATION_SCHEMA.TABLES -- databasename = 数据库名称 WHERE table_schema = '数据库名称' AND table_name NOT IN ( SELECT t.table_name FROM ( SELECT ...