问题场景:
之前我在写前端项目的时候需要给我登录注册表单写一个校验规则,由于没有学过正则表达式,而且对校验规则考虑的不够充分,所以在写的时候花了很多时间。最近稍微有点空了,想起来这件事决定把正则表达式学一下,毕竟还是有很多地方会用到。
补充一下:
什么是正则表达式?
正则表达式使用于匹配字符串中字符的模式
正则表达式有什么作用?
匹配、替换、提取
问题描述
这是我之前写的那个注册表单的校验(由于不用验证码就先注释掉了)。需要输入电话phone和密码password,并对它们进行校验,以下进行简要介绍
以phone为例,它有两条校验规则:
1、该字段为必填字段,blur规定了如果input失焦且无内容填入,就将提示信息“请输入手机号”
2、pattern声明了正则表达式规则,必须输入有效的电话号码,change规定了该校验会随输入同时进行
password同理,不再赘述
问题分析:
这里先看我在网上找的关于正则表达式的书写规则:
再看我写的校验规则:
1、phone:pattern: /^1[3456789]\d{9}$/
正则表达式要被/ /
包裹,^1
表示行首必须是1,[3456789]\d
表示该位置任意匹配3~9的数字字符,{9}
表示接下来上一条规则会再匹配9次,$
表示终止符,不可能再有第12位
2、password:/^\S{6,10}$/
同理,表示匹配6~10位非空字符
补充一下:
后面我在做配置代理跨域的时候也有用到正则表达式:
这是为了使本来冗长的url更加简单易懂,替换成\xxx
的形式