php 怎么用正则验证,php开发中经常用到的正则验证

前言

在PHP开发程序的过程中,经常会有很多表达要处理,而验证表单填写数据的合法性则是必须要考虑到的事,防治无效的数据对数据库造成影响。

关于正则表达式的语法,网上有很多教程和手册,讲的也很详细,因为本人对正则的语法研究也不是很透彻,这里就从我实际开发中常用到的正则表达式说起,贴出代码附上简短的说明,大家可以参考,有什么不对的地方欢迎指正、交流。

一些常用的正则表达式

1.验证用户名

preg_match("/^[0-9a-zA-Z_]{2,20}$/",$name)

这个正则表达式是要验证由字母、数字、下划线组成的2~20个字符之间的用户名。 其中^ $分别代表匹配的字符的开始和结束位置。[ ]里表示要匹配的表达式。{ }是限定符号,这里限定要匹配的字符串在2~20个字符之间。

这个正则表达式挺具有普遍性的,大家可以根据这个改自己需要的正则表达式。

2.验证邮箱

preg_match("/^[\w+\.]+@\w+\.\w+$/",$email)

w 和 [0-9a-zA-Z_]是等价的,表示匹配字母数字或者下划线。+表示匹配前面子表达式一次或者多次。.就是匹配.这个字符。

3.验证非负整数

preg_match("/^[1-9]*[0-9]+$/",$figure)

+表示匹配前面表达式一次或多次。*表示匹配前面表达式0次或多次。 验证负整数在前面叫一个 -。

4.验证浮点数

preg_match("/^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$/",$float)

|表示或。

5.验证端口号

preg_match("/^([0-9]|[1-9]\d|[1-9]\d{2}|[1-9]\d{3}|[1-5]\d{4}|6[0-4]\d{3}|65[0-4]\d{2}|655[0-2]\d|6553[0-5])$/",$port)

端口号的合法范围是:1~65535。|表示或,d等价于[0-9]表示匹配一个数字字符。最后把65535按每位来匹配。

6.验证域名

preg_match("/^((https?|ftp|news):\/\/)?([a-z]([a-z0-9\-]*[\.。])+([a-z]{2}|aero|arpa|biz|com|coop|edu|gov|info|int|jobs|mil|museum|name|nato|net|org|pro|travel)|(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))(\/[a-z0-9_\-\.~]+)*(\/([a-z0-9_\-\.]*)(\?[a-z0-9+_\-\.%=&]*)?)?(#[a-z][a-z0-9_]*)?$/",$domain)

这个域名的匹配有点长,但其中用到的也都是上面提到的那些符号可以完成的功能,就是看起来表达式比较长。

小结

这些都是我自己在开发过程中用过的正则表达式,但难免有的测试不到位,可能会有一些小错误导致在某些验证方面有些缺陷,大家可以互相交流,今天先写这些,日后有用到的再补充,也欢迎大家来补充。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值