资讯专栏INFORMATION COLUMN

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

nifhlheimr / 636人阅读

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

前言

在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)

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

小结

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

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/31956.html

相关文章

  • 正则系列——JavaScript正则表达式入门心得

    摘要:对前端来说,使用的场景不多,但是像微信端的对话系统的表情包,就使用到了一个特定的规则。我是一个前端,工作年了,现在失业,想进入腾讯工作,这是我的联系方式这个正则虽 我发现有个别字符被这个编辑器给刷掉了,但是灰色区域显示正常,以灰色区域代码为准 什么玩意? 在我刚开始学习编程的时候,就听过正则了,也听说正则很牛逼,懂正则的更牛逼。但是苦于没有人指点,也没有使用正则的场景,自己看教程又懵逼...

    DevWiki 评论0 收藏0
  • UCloud用户社区中发贴Markdown语法介绍

    摘要:社区在发布问题发布文章和进行回答评论时,使用的编辑器都是,这里简单介绍下在发帖时的用法。显示效果优刻得科技股份有限公司是中立安全的云计算服务平台,坚持中立,不涉足客户业务领域。社区在发布问题、发布文章和进行回答、评论时,使用的编辑器都是Markdown,这里简单介绍下Markdown在发帖时的用法。标题在发贴中经常用到,Markdown支持6种标题,我们可以使用# 前缀来标记,注意# 后面有...

    Tecode 评论0 收藏0
  • 正则表达式

    摘要:本文内容共正则表达式火拼系列正则表达式回溯法原理学习正则表达式,是需要懂点儿匹配原理的。正则表达式迷你书问世了让帮你生成和解析参数字符串最全正则表达式总结验证号手机号中文邮编身份证地址等是正则表达式的缩写,作用是对字符串执行模式匹配。 JS 的正则表达式 正则表达式 一种几乎可以在所有的程序设计语言里和所有的计算机平台上使用的文字处理工具。它可以用来查找特定的信息(搜索),也可以用来查...

    bang590 评论0 收藏0
  • 使用PHP辅助 快速制作一套自己手写字体实践

    摘要:参考代码地址四制作字体模板把自己最常接触的汉字找出来之后,需要制作一套字体模板,这套字体模板的用处是让手写汉字后,顺利的找到对应的汉字,这里需要依靠第三方网站提供的一些功能。 一、背景 笔者以前在网上看到有民间高手制作字体的相关事迹,觉得把自己的手写字用键盘敲出来是一件很有意思的事情,所以一直有时间想制作一套自己的手写体,前几天在网上搜索了一下制作字体的方法,发现技术上并不是太难,结合...

    moven_j 评论0 收藏0

发表评论

0条评论

nifhlheimr

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<