使用特殊的符号来做校验,目标是操作字符串。比如我们生活中的手机号码,邮箱,身份校验等等
语法:
pattern=""
- [abc] a,b,或c
- [a-zA-Z] a到z或A到Z,两头的字母包括在内
- \d 数字:[0-9]
- X{n} X,恰好n次
- X{n,} X,至少n次
- X{n,m} X,至少n次,但是不超过m次
- \D 非数字
- \s 空白字符(如空格,\t制表符,\n换行符)
- \S 非空白字符(除了空白字符以外的其他都可以)
- \w 单词字符[a-zA-Z_0-9]
- \W 非单词字符
- 在正则表达式中"^"表示正则的起始标记,"$"表示结束标记(可以不写)
比如:
用户名(6-12位字母):[a-zA-Z]{6,12}
密码(至少6位):[0-9]{6,}
手机号(手机格式:第一位为1,第二位可以为3578,后面九位必须是纯数字):1[3578]\d{9}



但是,上面的例子我们只是前端校验
前端校验是有弊端的:我们可以通过一些手段来绕过前端校验

我们可以看到,当我们点开开发者模式,可以进行HTML的编辑,此时我们删除我们的前端的正则表达式:

此时我们的注册信息不符合规则时也可以提交出去了:这就会很危险!!

那么此时我们就需要在后台加入正则表达式的校验:
- 用户名只能为字母,长度为6-12位:[a-zA-Z]{6,12}
- 密码只能为数字:长度至少为6位:[0-9]{6,} ,\\d{6}
- 手机号校验:[1][35778]\\d{9}
- 邮箱校验:[a-zA-Z_0-9]{3,}@([a-zA-Z]+|\\d+)(\\.[a-zA-Z]+)+
- 需要使用"."时,需要在前面加"\\","+"表示前面的字符至少出现一次
matches方法:将获取过来的username和usernameRegex这个规则进行比对,如果满足返回true,否则返回false

此时我们再次进行注册就会出现正确的信息,而且通过绕过注册也无法换取注册标准了


435





