发表于: 2020-08-28 22:35:31
0 2172
JavaScript正则表达式
1、正则表达式简介
正则表达式使用单个字符串来描述、匹配符合某个句法规则的字符串搜索模式,正则表达式常用于文本搜索和文本替换。
2、正则表达式字符
- 修饰符
<div i |
<div g | <div m | |
<div 不区分大小写 | <div 全局匹配 | <div 多行匹配 |
- 括号
<div [abc] |
<div [^abc] | <div [a-z] | <div (red/blue/yellow) | |
<div 查找中括号内的任意字符 | <div 查找括号外的任意字符 | <div 查找a-z之间的字符 | <div 查找括号内的单词 |
- 元字符
<div \d |
<div \s | <div \b | <div $ | <div \n | <div \r | <div \uxxxx | |
<div 查找数字 | <div 查找空白字符 | <div 匹配单词边界 | <div 匹配单词末端 | <div 查找换行符 | <div 查找回车符 | <div 查找十六进制 |
- 方法
<div 正则表达式方法 |
<div RegExpObject.exec(string) | <div 搜索字符串中匹配的字符,并返回该字串 |
<div RegExpObject.test(string) | <div 搜索字符串中指定的值,返回布尔值 |
<div RegExpObject.lastIndex | <div 返回相匹配字符串的末尾位置,用于下次匹配的起始位置 |
<div 字符串方法 | |
<div stringObject.search(regexp) | <div 返回相匹配字符串的起始位置,没找到返回-1 |
<div stringObject.match(regexp) | <div 搜索字符串中匹配的字符,并返回该字串 |
<div stringObject.replace(regexp,替换) | <div 替换字符串中匹配的字符 |
<div stringObject.split("分隔符",“长度可选”) | <div 把一个字符串分割成字符串组 |
REAT风格
1、REST概念
REST即Representational State Transfer的缩写,可译为"表现层状态转化”。
REST最大的几个特点为:资源、统一接口、URI和无状态。
REST是一种标准规范,让请求更有语义化,遵循REST风格可以使开发的接口通用,便于调用者理解接口的作用
- HTTP请求,设定了八种方法
- OPTIONS 返回服务器所支持的请求方法
- GET 向服务器获取指定资源
- HEAD 与GET一致,只不过响应体不返回,只返回响应头
- POST 向服务器提交数据,数据放在请求体里
- PUT 与POST相似,只是具有幂等特性,一般用于更新
- DELETE 删除服务器指定资源
- TRACE 回显服务器端收到的请求,测试的时候会用到这个
- CONNECT 预留,暂无使用
2、post和get的区别
GET |
<div POST | ||
<div 后退按钮/刷新 | <div 无害 | <div 数据会被重新提交(浏览器应该告知用户数据会被重新提交)。 |
<div 书签 | <div 可收藏为书签 | <div 不可收藏为书签 |
<div 缓存 | <div 能被缓存 | <div 不能缓存 |
<div 编码类型 | <div application/x-www-form-urlencoded | <div application/x-www-form-urlencoded 或 multipart/form-data。为二进制数据使用多重编码。 |
<div 历史 | <div 参数保留在浏览器历史中。 | <div 参数不会保存在浏览器历史中。 |
<div 对数据长度的限制 | <div 是的。当发送数据时,GET 方法向 URL 添加数据;URL 的长度是受限制的(URL 的最大长度是 2048 个字符)。 | <div 无限制。 |
<div 对数据类型的限制 | <div 只允许 ASCII 字符。 | <div 没有限制。也允许二进制数据。 |
<div 安全性 | <div 与 POST 相比,GET 的安全性较差,因为所发送的数据是 URL 的一部分。<div 在发送密码或其他敏感信息时绝不要使用 GET ! | <div POST 比 GET 更安全,因为参数不会被保存在浏览器历史或 web 服务器日志中。 |
<div 可见性 | <div 数据在 URL 中对所有人都是可见的。 | <div 数据不会显示在 URL 中。 |
前端常见跨域解决方案
1、什么是跨域
- 广义的跨域
广义的跨域是指一个域下的文档或脚本试图去请求另一个域下的资源
- 资源跳转:A链接、重定向、表单提交
- 资源嵌入:<link>、<script>、<img>、<frame>等dom标签。还有样式中的background:url()、@font-face()等文件外链
- 脚本请求:Js发起AJAX请求、DOM和JS对象的跨域操作等
- 狭义的跨域
我们通常所说的跨域是狭义的,是由浏览器同源策略限制的一类请求场景
2、什么是同源策略
同源策略/SOP(Same origin policy)是一种约定,由网景1995年引入浏览器,它是浏览器最核心最基本的安全功能,如果缺少同源策略,浏览器很容易受到XSS/CSFR等攻击、所谓的同源是指“协议+域名+端口”三者相同,即便两个不同的域名指向同一个ip地址,也非同源。
- 同源策略限制以下几种行为
- Cookie、LocalStorage 和 IndexDB 无法读取
- DOM 和 Js对象无法获得
- AJAX 请求不能发送
- 常见的跨域场景
3、常用解决方案
1、 通过jsonp跨域
2、 document.domain + iframe跨域
3、 location.hash + iframe
4、 window.name + iframe跨域
5、 postMessage跨域
6、 跨域资源共享(CORS)
7、 nginx代理跨域
8、 nodejs中间件代理跨域
9、 WebSocket协议跨域
评论