網域查詢: www.
返回首頁
當前位置: 首頁 > 站長學院 > 網站編程 > PHP教程 >

正則表達式使用詳解(二)

時間:2010-02-12 19:54來源: 作者: 點擊:
使用實例 在對正則表達式有了較為全面的了解之後,我們就來看一下如何在Perl,PHP,以及JavaScript中使用正則表達式。 通常,Perl中正則表達式的使用格式如下︰ operator / regular-expressio
  

使用實例

  在對正則表達式有了較為全面的了解之後,我們就來看一下如何在Perl,PHP,以及JavaScript中使用正則表達式。

  通常,Perl中正則表達式的使用格式如下︰

  operator / regular-expression / string-to-replace / modifiers

  運算符一項可以是m或s,分別代表匹配運算和替換運算。

  其中,正則表達式一項是將要進行匹配或替換操作的模式,可以由任意字符,元字符,或定位符等組成。替換字符串一項是使用s運算符時,對查找到的模式匹配對象進行替換的字符串。最後的參數項用來控制不同的匹配或替換方式。例如︰

  s/geed/good/

  將會在目標對象中查找第一個出現的geed字串,並將其替換為good。如果我們希望在目標對象的全局範圍內執行多次查找 替換操作的話,可以使用參數 “g”,即s/love/lust/g。

  此外,如果我們不需要限制匹配的大小寫形式的話,可以使用參數 “i ”。例如,

  m/JewEL/i

  上述正則表達式將會與目標對象中的jewel,Jewel,或JEWEL相匹配。

  在Perl中,使用專門的運算符“=~”指定正則表達式的匹配對象。例如︰

  $flag =~ s/abc/ABC/

  上述正則表達式將會把變量$flag中的字串abc替換為ABC。

  下面,我們就在Perl程序中加入正則表達式,驗證用戶郵件地址格式的有效性。代碼如下︰

  #!/usr/bin/perl
  # get input
  print “Whats your email address?\n”;
  $email = $#@60;STDIN$#@62;;
  chomp($email);
  # match and display result
  if($email =~ /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-])+/)
  {
  print(“Your email address is correct!\n”);
  }
  else
   {
    print(“Please try again!\n”);
   }

  如果用戶更偏愛PHP的話,可以使用ereg()函數進行模式匹配操作。ereg()函數的使用格式如下︰
   ereg(pattern, string)

  其中,pattern代表正則表達式的模式,而string則是執行查找替換操作的目標對象。同樣是驗證郵件地址,使用PHP編寫的程序代碼如下︰

  $#@60;?php
   if (ereg(“^([a-zA-Z0-9_ +@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-])+”,$email))
    { echo “Your email address is correct!”;}
   else
    { echo “Please try again!”;}
   ?$#@62;
  最後,我們在來看一下JavaScript。JavaScript 1.2中帶有一個功能強大的RegExp()對象,可以用來進行正則表達式的匹配操作。其中的test()方法可以檢驗目標對象中是否包含匹配模式,並相應的返回true或false。

  我們可以使用JavaScript編寫以下腳本,驗證用戶輸入的郵件地址的有效性。

  $#@60;html$#@62;
   $#@60;head$#@62;
    $#@60;script language="Javascript1.2"$#@62;
     $#@60;!-- start hiding
     function verifyAddress(obj)
     {
      var email = obj.email.value;
      var pattern = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-])+/;
      flag = pattern.test(email);
      if(flag)
      {
       alert(“Your email address is correct!”);
       return true;
      }
      else
       {
        alert(“Please try again!”);
        return false;
        }
      }
     // stop hiding --$#@62;
    $#@60;/script$#@62;
   $#@60;/head$#@62;
   $#@60;body$#@62;
   $#@60;form onSubmit="return verifyAddress(this);"$#@62;
   $#@60;input name="email" type="text"$#@62;
   $#@60;input type="submit"$#@62;
   $#@60;/form$#@62;
  $#@60;/body$#@62;
 $#@60;/html$#@62;


頂一下
(0)
0%
踩一下
(0)
0%
------分隔線----------------------------
最新評論 查看所有評論
發表評論 查看所有評論
請自覺遵守互聯網相關的政策法規,嚴禁發佈色情、暴力、反動的言論。
評價:
表情:
用戶名: 密碼: 驗證碼:
推薦內容