正規式不是簡單好學的-1

前言

學習正規式,有人又稱正則式,語法簡單但實際操作又覺得很難,在此從基礎開始學習,透過一些小範例搭配操作,會比較容易記住,開始學習啦。(發現越來越健忘了XD)

宣告起手式

如何使用正規式呢,有兩種方法可以實現,

  • 直接使用雙斜線,如 ( /裡面寫正規語法/ )
  • 使用建構式 RegExp() ,new 出一個實例,切記不用加斜線,如 new RegExp(“裡面寫正規語法”);

線上網站模擬使用

用途

在用途是有很多種,先列出幾種常見方式,字串取代、表單驗證、搜尋...等等

在正規式下有好幾種方法(method)可以使用,先來使用test()此為測試,回傳為布林(Boolean)。

找到回傳 true ,否則為 false

1
2
3
4
5
6
7
8
9
/a/.test("this is an apple");

//這段小範例表達這字串裡含有a嗎?
=> 回傳: true (是有的)

/c/.test("this is a apple");

//這字串裡含有c嗎?
=> 回傳: false (找不到)

Replace

取代,傳統再用replace時,都是使用字串來做替換使用,但這邊需要注意的點是,字串在使用replace時,如果找兩個或以上相同字時,只會取代第一個,以前以為會取代多個(其他語言…),在這是使用JS來做操做,先來看看小例子吧。

Replace方法使用,有兩個參數

  • 被取代的字串 或是 正規式
  • 替換的字串 或是 一個 function

更多請參考 MDN Replace

1
2
3
4
5
6
7
8
9
10
11
console.log( "this is a book".replace("is", "__") );
=> th__ is a book (只會替換一個)

如果是使用正規呢

console.log( "this is a book".replace( /is/ , "__") );
=> th__ is a book (也是一樣),其實是少加一個旗標參數
那參數是加在雙斜線外面,有 g (全域尋找) 、 i (不分大小寫) 、 m (多行搜尋)

console.log( "this is a book".replace( /is/g , "__") );
=> th__ __ a book (成功了)

下回待續

下篇在繼續學習!

0%