发送Ajax请求的4种方式

1、XMLHttpRequest

XMLHttpRequest是WebAPI中的标准对象,可发起Ajax请求。三步曲:
* 创建XMLHttpRequest对象;
* open方法设置请求方式及url地址;
* send方法正式发起请求;

<script>
    let xhr = new XMLHttpRequest();
    xhr.onreadystatechange = event => {
        console.log(event);
    }
    xhr.open('get', 'https://jsonplaceholder.typic[......]

继续阅读

到底什么是REST?

1、到底是什么?

困惑我已久的一个问题,RESTRESTfulRESTful API……

以下是来自官方的定义:

REST即表述性状态传递(英文:Representational State Transfer,简称REST)是Roy Fielding博士在2000年他的博士论文中提出来的一种软件架构风格。它是一种针对网络应用的设计开发方式,可以降低开发的复杂性,提高系统的可伸缩性。

忽略上面这段话,因为反正说了也等于没说,但有几个关键词值得注意:“设计”“开发方式”,好了暂且放一放,换个角度了解一下。

2、相对谁而言?

再次引用百度百科的一段话:

在三种主流[……]

继续阅读

正则表达式中原子组的基本使用

什么是原子组

简单一点讲,原子组就是正则表达式中的小括号()及所包括的内容

一个简单的示例

let date = '今天是2020-09/29';
// 日期分隔符有/或-,如是分开写,会匹配出前后不一致的数据,比如2020-09/29
let reg = /\d{4}[\/\-]\d{2}[\/\-]\d{2}/g;
console.log(date.match(reg));
// 修正为前后保持一致,后面的分隔符可使用前面的原子组,直接写序号即可,因为是第1个,所以转义1
// 此时如果是2020-09/29就匹配不成功了
reg = /\d{4}([\/\-])\d{2}\1\d{[......]

继续阅读

正则表达式中断言的使用

啰嗦几句

  1. 正则表达式中的断言叫零宽度断言,分别有以下几种情况
    • 零宽度正先行断言,表达式为(?=exp)
    • 零宽度负先行断言,表达式为(?!exp)
    • 零宽度正后发断言,表达式为(?<=exp)
    • 零宽度负后发断言,表达式为(?<!exp)
  2. 搞得很拗口,简单一点上述4种情况翻译成人话分别是:后面是xxx,后面不是xxx,前面是xxx,前面不是xxx,就这么回事;
  3. 以下通过几个示例分别来验证使用效果

代码示例

以一段html代码为例,首先匹配出所有的a标签

无断言正常匹配

let html = `
    <div>
        <a href="h[......]

继续阅读

正则表达式校验密码强度

需求分析

  • 密码合法字符包括:数字、字母大小写、标点符号;
  • 密码强度一般需要以上类型的组合及长度要求;

功能实现

  1. 先分别写出以上4种组合的正则表达式
let password = 'aBcdefg123!'
// 数字
let reg1 = '\\d';
// 字母
let reg21 = '[a-z]';
let reg22 = '[A-Z]';
// 符号
let reg3 = '[`\\-=\\[\\]\\\\;\',.\/~!@#$%^&*()_+{}|:"<>?]';
  1. 检测整个密码是否符合以上组合匹配要求及长度要求6-20位
// 混合匹配[......]

继续阅读