全面解析:正则表达式参数校验规则
需积分: 9 45 浏览量
更新于2024-08-28
收藏 39KB MD 举报
本文档详细介绍了正则表达式在参数校验中的应用,特别是针对用户中心的注册账号、密码和昵称/用户名的校验规则。文档内容包括字段限制、长度限制以及特殊字符的允许范围。
### 正则表达式基础
正则表达式是一种强大的文本处理工具,用于匹配、查找、替换等操作。在Java中,可以使用`Pattern`和`Matcher`类来编译和执行正则表达式。
### 用户中心基础校验逻辑
#### 注册账号 - username
注册账号的正则表达式为`/^[A-Za-z][-_!@#$%^&*a-zA-Z0-9]{4-15}$/`,其规则如下:
1. 开头必须是大写或小写字母。
2. 允许后续包含英文、数字以及指定特殊字符:`-_!@#$%^&*`,但不允许空格。
3. 字符串长度限制在5到16个字符之间(不包括开头的字母)。
#### 密码 - password
密码的正则表达式分为两部分,最后采用的是`^(?![a-zA-z]+$)(?!\d+$)(?![!@#$%^&*]+$)[a-zA-Z\d-_!@#$%^&*]{6,16}$`,其规则如下:
1. 密码必须包含字母、数字和特殊字符的组合,不能只由单一类型组成。
2. 允许大写和小写英文字母、数字以及特殊字符:`-_!@#$%^&*`,但不允许空格。
3. 密码长度限制在6到16个字符之间。
在Java中,可以使用以下代码进行密码校验:
```java
String regex = "^(?![a-zA-z]+$)(?!\\d+$)(?![-_!@#$%^&*]+$)[a-zA-Z\\d-_!@#$%^&*]{6,16}$";
Matcher matches = Pattern.compile(regex).matcher(decodePassword);
if (!matches.find()) {
throw new UserCenterException("1、格式需为:字母+数字,字母+特殊字符,数字+特殊字符\n" +
"2、允许大、小写英文字母+数字\n" +
"3、允许特殊字符(-_!@#$%^&*)(禁止空格)\n" +
"4、允许长度:6-16位");
}
```
#### 昵称/用户名 - name
昵称/用户名的正则表达式分为两部分,最后采用的是`/^[a-zA-Z\u4e00-\u9fa5][-_!@#$%^&*a-zA-Z0-9·\s\u4e00-\u9fa5]{1,31}$/`,规则如下:
1. 首位可以是大写或小写字母或中文字符。
2. 允许包含中文、英文、数字以及特殊字符:`-_!@#$%^&*`,并允许空格(`\s`)。
3. 字符串长度限制在1到31个字符之间(不包括首位的字母或中文)。
### 结论
通过这些正则表达式,可以有效地校验用户输入的合法性,确保数据的准确性和安全性。在实际开发中,正则表达式可以灵活调整以适应不同的业务需求和安全策略。理解并熟练运用正则表达式是每个IT从业者必备的技能之一。
2021-02-09 上传
2022-09-25 上传
2021-05-20 上传
2021-02-03 上传
2021-03-18 上传
2019-03-18 上传
2021-06-29 上传
猫猫聚会Ing
- 粉丝: 276
- 资源: 3
最新资源
- OptimizerTiles:《 IEEE杂志关于电路和系统中的新兴主题和选定主题》的论文的工具:使用针对虚拟现实的最佳图块的视觉注意感知全向视频流
- 人工智能实验代码.zip
- GradeCam Helper-crx插件
- jour3-THP:页面d'accueil Google
- 参考资料-418.小型预制混凝土构件质量试验报告.zip
- 饼干:用于软件项目管理的命令行界面
- 课程设计之基于Java实现的学生信息管理系统.rar
- GenerateUUID:生成崇高文本的UUID
- scripts:脚本集合
- penguin-fashion:服装网站
- 索诺特
- DKP.rar_Java编程_Java_
- 人工智能大赛:看图说话.zip
- conciertos-front
- PROYECTO-FINAL:基金会最终纲领
- svampyrerna