Chinaunix首页 | 论坛 | 博客
  • 博客访问: 354130
  • 博文数量: 213
  • 博客积分: 566
  • 博客等级: 中士
  • 技术积分: 1210
  • 用 户 组: 普通用户
  • 注册时间: 2011-03-21 13:09
文章分类

全部博文(213)

文章存档

2015年(1)

2013年(7)

2012年(128)

2011年(77)

分类:

2012-06-18 15:13:04

原文地址:Javascript中的正则表达式 作者:Bean_lee

    正则表达式真的是一个比较重要的工具,日常工作中有太多需要用到正则表达式的场景。UI检测用户输入的合法性是一个比较容易想到的场景,比如请用户输入一个IP地址,或者输入一个文件的sha1值。由于IP地址 sha1是有一定规则的,输入检查是不可缺少的一项。如何判断一个用户的输入是否合法,正则表达式发挥作用的场景就到了。

    好多语言都支持正则表达式,当然据说Perl语言是支持的最好的语言,无奈我没怎么学过。我在日常工作中遇到过C语言对正则表达式的支持,JS PHP 也遇到过。本文主要讲述JS对正则表达式的支持。

    JS 通过RegExp类型来支持正则表达式。
    
    1 格式一:
    var expression = /pattern/ flags;
    如下面的代码段:

  1.    var pattern=/dat/i



    搜索dat,flag为i表示不区分大小写,即Dat,DAT,dAT,这些都是匹配的。

    2 格式二:
    var expression = new RegExp(pattern,flags);
    如  :

  1.    var pattern = new RegExp("dat",'i');


    和格式一中的示例效果是一样的。

    正则表达式中支持下面三个标志位
    g:全局模式,即模式应用于整个字符串,而不是找到第一个匹配项就停止。
    m:表示多行,即到达一行文本末尾时还会继续查找下一行是否存在匹配项。
    i:不区分大小写。
    

点击(此处)折叠或打开

  1. <html>
  2. <head>
  3.     <title>RegExp Constructor Properties Example</title>
  4.     <script type="text/javascript">
  5.     
  6.         var text = "the book is about DaTabase";
  7.         var pattern = /dat/i;
  8.         
  9.         if (pattern.test(text)){
  10.             alert("found");
  11.         }

  12.     </script>
  13. </head>
  14. <body>

  15. </body>
  16. </html>

点击(此处)折叠或打开

  1. <html>
  2. <head>
  3.     <title>RegExp Constructor Properties Example</title>
  4.     <script type="text/javascript">
  5.     
  6.         var text = "the book is about DaTabase";
  7.         var pattern = new RegExp("dat","i");
  8.         
  9.         if (pattern.test(text)){
  10.            alert("found");
  11.         }

  12.     </script>
  13. </head>
  14. <body>

  15. </body>
  16. </html>
    实例代码中其实给出了如果检测字符串中有没有相应模式的方法,就是: pattern.test(string),如果找到相应的匹配项,则返回true,没找到,则返回false。在我们的实例当中,因为text字符串中存在匹配项DaT,所以返回了true,浏览器打出了found的警告框。

         
     
    当然了,我这个只是个例子,比较简单的描述JS对正则表达式的支持。要想获取复杂的功能,就要构造相应的pattern,利用pattern来检测时候存在匹配项。至于正则表达式部分我本身也不是很精通,而且不是本文的concern,所以我就不写了。

参考文献:
1 Javascript 高级程序设计
2 正则表达式 百度百科

阅读(608) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~