軟體測試學習教程—Web測試之正規表示式

千鋒教育官方發表於2019-08-29

  正規表示式出現情況

 

  假設使用者需要在HTML 表單中填寫姓名、地址、出生日期等。那麼在將表單提交到伺服器進一步處理前, JavaScript 程式會檢查表單以確認使用者確實輸入了資訊並且這些資訊是符合要求的。

 

  一.什麼是正規表示式

 

  正規表示式(regularexpression) 是一個描述字元模式的物件。 ECMAScript RegExp 類表示正規表示式,而 String RegExp 都定義了使用正規表示式進行強大的模式匹配和文字檢索與替換的函式。

 

  正規表示式主要用來驗證客戶端的輸入資料。使用者填寫完表單單擊按鈕之後,表單就會被髮送到伺服器,在伺服器端通常會用PHP ASP.NET 等伺服器指令碼對其進行進一步處理。因為客戶端驗證,可以節約大量的伺服器端的系統資源,並且提供更好的使用者體驗。

 

  正規表示式

 

  一個正規表示式是由普通字元( a~z) 以及特殊字元 ( 稱為元字元 ) 組成的模式字串。

 

  該模式字串描述在查詢文字主體時待匹配的一個或多個字串。正規表示式作為一個模板,將某個字元模式與所搜尋的字串進行匹配。

 

  1 、字元類

 

  2 、量詞

 

  3 、指定匹配位置

 

  4 、使用選擇匹配符

 

  正規表示式的選擇匹配符只有一個"|" ,使用 "|" 可以匹配指定的多個選項中的任意一項。

 

  例如/World|Dream/ 可以匹配 "One World One Dream" 中的 World 或者 Dream

 

  5 、分組

 

  分組就是使用小括號將多個單獨的字元或字元類組合成子表示式,以便可以像處理一個獨立的單元那樣,用"|" "*" "+" 或者 "?" 等來處理他們。比如 /J(ava)?Script/ 可以匹配 JavaScript ,也可以匹配 JScript

 

  正規表示式的建立

 

  1 、透過 RegExp 類的構造方法建立

 

  \d{3}

 

  語法格式:new RegExp(pattern[,flags])

 

  pattern: 必選引數,用於指定需要進行匹配的模式字串。

 

  flags: 可選引數,用於指定正規表示式的標誌資訊。

 

  g: 全域性標誌。如果設定了該標誌,對於某個文字執行搜尋或者替換時,將對文字中的所有匹配部分起作用,否則僅搜尋或替換第一次匹配的內容。

 

  i: 忽略大小寫標誌。

 

  m: 多行標誌。如果不設定這個標誌,那麼 ^ 只能匹配字串的開頭, $ 只能匹配字串的結尾;如果設定了這個標誌,那麼 ^ 可以匹配多行字串的每一行的開頭, $ 可以匹配多行字串的每一行的結尾。

 

  var objExp=new RegExp("\\d",g);

 

  正規表示式的建立

 

  2 、透過正規表示式字面量建立 RegExp 物件

 

  正規表示式字面量由兩條斜線// 中間加入模式匹配字串組成。如果還要指定標誌資訊,則在最後的斜線 / 後面加上標誌資訊,比如 g 或者 i.

 

  var objExp=/\d/g;

 

  正規表示式的使用

 

  3 、使用 test() 方法進行模式匹配

 

  test() 方法用於對一個指定的字串執行模式匹配,如果搜尋到匹配的字元,返回 true ,否則返回 false

 

  var objExp=/\d/g;

 

  objExp.test("abc");

 

  正規表示式的使用

 

  4 、使用 exec() 方法進行模式匹配

 

  exec() 方法返回值不是 true 或者 false ,而是當沒有搜尋到匹配的字元時,返回 null,

 

  否則返回一個陣列,這個陣列的第一個元素包含與正規表示式相匹配的字串,其他元素包含的是匹配的各個分組(用括號括起來的子表示式)

 

  語法格式:

 

  regExp.exec(str)

 

  身份證案例

 

  function f(){

 

  varzhi=ff.t01.value;

 

  varv=/(\d{6})(\d{8})(\d{4})/;

 

  varb=v.exec(zhi);

 

  if(b!=null){

 

  alert("aaa"+b[2]);

 

  }else{

 

  alert(" 不能為空 ");

 

  }

 

  }

 

  校驗郵件地址是否合法

 

  functionIsEmail(str){

 

  varreg=/^\w+ [a-zA-Z0-9]{2,10}(?:\.[a-z]{2,4}){1,3}$/;

 

  return reg.test(str);

 

  }

 

  if(!IsEmail(document.getElementById("email").value)){

 

  alert(" 郵箱地址錯誤 ");

 

  document.getElementById("email").focus();

 

  returnfalse;

 

  }


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69914734/viewspace-2655440/,如需轉載,請註明出處,否則將追究法律責任。

相關文章