28.正则表达式和前端性能优化

一。正则表达式

正则表达式主要用在表单验证

1.什么是正则表达式

        能让计算机读懂的字符串匹配规则

 

2.正则表达式的写法:

var re = new RegExp("规则","可选参数")

var re = /规则/参数

 

3.规则中的字符

a。普通字符匹配

如:/a/   匹配字符   "a"      ,      /a,b/匹配字符"a,b"

 

b。转义字符匹配

\d    匹配一个数字,即0-9

\D   匹配一个非数字,即除了0-9

\w   匹配一个单词字符(字母,数字,下划线)

\W   匹配任何非单词字符。等价于(^A-Z      a-z       0-9)

\s匹配一个空白符

\S匹配一个非空白符

\b匹配单词边界

\B匹配非单词边界

.   匹配一个任意字符

 

4.量词:对左边的匹配字符定义个数

?出现零次或一次(最多出现一次)

+出现一次或多次(至少出现一次)

*出现零次或多次

{n}   出现n次

{n,m}  出现n到m次

{n,}至少出现n次

 

5.任意一个或者范围

[abc123]   匹配"abc123"中的任意一个字符

[a-z   0-9] 匹配a到z或者0到9中的任意一个字符

 

 

6.限制开头结尾

^以紧挨的元素开头

$以紧挨的元素结尾

 

7.修饰参数

g:global ,全文搜索,默认搜索到第一个结果接停止

i:ingore  case  ,忽略大小写,默认大小写敏感

 

8.常用函数

a。test

用法:正则test(字符串)匹配成功,就返回真,否则就返回假。

b。replace

用法:字符串replace(正则,新的字符串)匹配成功的字符去替换新的字符

 

二。常用正则规则--记住常用即可,不会再去查

//用户名验证:(数字字母或下划线6到20位)

          var reUser = /^\w{6,20}$/;

//邮箱验证

          var reMail = /^[a-z0-9][\w\.\-]*@[a-z0-9\-]+(\.[a-z]{2,5}){1,2}$/i;

//密码验证

          var rePass = /^[\w!@#$%^&*]{6,20}$/;

//手机号码验证

          var rePhone = /^[3458]\d{9}$/;

 

三。前端性能优化

前端代码是先从服务器下载到客户端再运行,后端的代码是直接在服务器上面跑。跑完之后再返回。

 

         从用户访问资源到资源完整的展现在用户面嵌过程中,通过技术手段和优化策略,缩短每个步骤的处理事件从而提升整个资源的访问和呈现速度。网站的性能直接会影响到用户的数量,所有前端性能优化很重要。

前端性能优化分为如下几个方面:

1.代码部署

1.代码的压缩与合并

2.图片,js,css等静态资源使用和主站不同域名地址存储,从而使得在传输资源时不会带上不必要的cookie信息。

3.使用内容分发网络CDN

4.为文件设置Last-Modified(最后一次修改的时间)  ,Expires(过期时间)节约带宽  ,Etag(时间戳)比较时间,时间内的读缓存

5.使用GZIP压缩传送

6.权衡DNS查找次数(使用不同域名会增加DNS查找):网站访问一个地址,一开始敲得是域名,域名最终会解析成IP地址,域名到IP地址的过程是域名先去访问DNS服务器,再解析成IP地址。

7.避免不必要的重定向(加"/")

2.编码

HTML

1.使用结构清晰 ,简单 ,语义化标签

2.避免空的src  和  href

3.不要在HTML中缩放图片

 

CSS:

1.精简css选择器

2.把CSS放到顶部

3.避免@import方式引入样式

4.css中使用base64图片数据取代图片文件,减少请求数,在线转base64网站:https://tool.css-js.com/base64.html

5.使用css动画来取代js动画

6.使用字体图标

7.使用css  sprite(雪碧图)

8.使用svg图行

9.避免使用CSS表达式

body{

background-color:expression((new Date()).getSeconds()%2 ? "#88D4FF" : "#F08A00");

}

10.避免使用css滤镜

 

JavaScript

1.减少引用库的个数

2.使用requirejs或seajs异步加载js

3.JS放到页面底部引入

4.避免全局查找

5.使用原生方法

6.用switch语句代替复杂的if   else 语句

7.减少语句数,比如说多个变量声明可以写成一句

8.使用字面量表达式来初始化数组或者对象

9.使用innerHTML取代复杂的元素注入

10.使用事件代理(事件委托)

11.避免多次访问dom选择集

12.高频触发事件设置使用函数节流

13.使用web Storage 缓存数据。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值