• 常用数据验证正则表达式释义(附:正则表达式常用符号)


    正则表达式,要想完全掌握,几乎是不可能的。而且,正则表达式,也并不是万能的,很多情况,并不能做倒完全的匹配。如果我们仅仅是做网站,在数据验证、简单查询的时候使用,我们只需要掌握几个常用的验证表达式,并能正确地解读它的规则就可以了。

    一、Internet电子邮箱地址:

    正则表达式:

    \w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*

    释义:

    1、表达式必须含有”@“和”.“两个符号;

    2、@之前,必须以字母、数字或者下划线开始,可以使用特殊字符"-"、”+“、”.“和”'“,但后面必须跟一个以上字母、数字或者下划线,不允许有其它字符;

    3、@与.之间,规则同上,但允许使用的特殊字符只有"-"和”.“;

    4、.之后,规则同上;

    5、"."属于元字符,使用的时候,需要加个反斜杠"\."。

    总结:

    电子邮箱,并没有一个严格的规则,调试程序时,我经常使用111.111@111甚至1@1.1,完全符合上面正则表达式的规则。


    二、QQ号:

    正则表达式:[1-9][0-9]{4,}

    释义:第一位是1到9的数字,后面是4位以上0到9的数字,也就是说,从100000开始的数字号码。


    三、IP地址:

     正则表达式:

    ((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)

    释义:

    1、2[0-4]\d:第一位是2,第二位是0-4,第三位是0-9——也就是数字200-249;

    2、25[0-5]:第一位是2,第二位是5,第三位是0-5——也就是数字250-255;

    3、[01]?\d\d?:第一位是0或1或者什么都没有,第二位是0-9,第三位是0-9或者什么都没有——也就是:0-199,允许有00、000、09、009、099等形式;

    4、(2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}:0.-255.重复三次;

    5、(2[0-4]\d|25[0-5]|[01]?\d\d?):0-255;

    总结:

    这是个严格的IP正则表达式,允许任何形式正确的IP,不允许任何不正确的IP。

    附:正则表达式常用符号

    符号

    说明

    []

    用来定义单一字符的内容,例如:

    [a-zA-Z]       只接受a-z或是A-Z的英文字符。

    [x-zX-Z]     只接收小写的x-z或大写的X-Z

    [win]               只接收win的英文字母。

    {}

    用来定义需输入的字符个数,例如:

    [a-zA-Z]{4}            表示接受只接收四个字符。

    [a-z]{4}         表示只接收共四个a-z小写字符。

    [a-zA-Z]{4,6}     表示最少接受四个字符,最多接受六个字符。

    [a-zA-Z]{4,}       表示最少接受四个字符,最多不限制。

    .

    符号可以用来表示接收除了空白外的任意字符,例如:

    .{4}   表示接收四个除了空白外的任意字符。

    *

    表示最少可以不输入,最多到无限多个字符。例如:

    [a-zA-Z]*  表示不限制数目,接受a-zA-Z的字符,也可以不输入。

    +

    表示最少输入 1 个字符,最多到无限多个字符,例如:

    [a-zA-Z]+  表示不限制数目,接受a-zA-Z的字符,但是至少输入一个字符

    [^...]

    表示不包含的字符

    |

    表示或,只要符合两个规则的其中一个即接受。例如,用户只要输入全部四个数值或是全部四个字母都接受的话,验证规则可以写成[a-zA-Z]{4} | [0-9]{4}

    \d

    匹配任何一个数字(0~9

    \D

    匹配任何一个非数字(^0~9

    \w

    与以下任意字符匹配:A-Za-z0-9和下划线。

    等效于[A-Za-z0-9_]

     

    \W

    与除 A-Za-z0-9和下划线以外的任意字符匹配。

    等效于[^A-Za-z0-9_]

     

  • 相关阅读:
    黄聪:HBuilder左侧项目管理器如何不与标签页一起自动切换
    黄聪:is_file和file_exists效率比较
    黄聪:HBuilder复制PHP项目后,【转到定位】功能失效
    黄聪:jquery.bootgrid表格插件有的属性(visibleInSelection、cssClass、headerCssClass、headerAlign)不能识别的解决办法
    黄聪:PHP如何实现延迟一定时间后自动刷新当前页面、自动跳转header("refresh:1;url={$url}");
    黄聪:bootstrapValidator验证成功,按钮变灰却无法提交的问题
    黄聪:如何使用钩子定制WordPress添加媒体界面,去除不需要的元素
    黄聪:jquery+Datatables出现数据过长,表格不自动换行,columns设置width失效的办法
    黄聪:Jquery+DataTables插件,如何在ajax调用服务器数据后,自动给tr添加id属性
    黄聪:JQUERY判断操作CHECKBOX选中、取消选中、反选、第二次无法选中的问题
  • 原文地址:https://www.cnblogs.com/java20130723/p/3211594.html
Copyright © 2020-2023  润新知