Java的正则表达式

使用特殊的符号来做校验,目标是操作字符串。比如我们生活中的手机号码,邮箱,身份校验等等

语法:

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

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

 

 

 

 

评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值