RegExp Initialize

Tạo ra biểu thức chính quy bằng constructor RegExp:

let pattern = "love"
let flag = "gi"
let regEx = new RegExp(pattern, flag)

Một cách ngắn gọn hơn:

let regEx = new RegExp("love", "gi")

Hoặc sử dụng hai dấu / chứa pattern bên trong và flag ở bên ngoài:

let regEx = /love/gi

Các flag có thể là g, i, m, s, u, y.

RegExp Instance Methods

Test

  • Chức năng: kiểm tra xem có chuỗi con nào giống với pattern hay không. Ta gọi các chuỗi con này là các match.

  • Cú pháp: pattern.test(string)

  • Trả về: true hoặc false.

  • Ví dụ:

    const str = "I love JavaScript"
     
    const pattern = /love/
    const result = pattern.test(str)
     
    console.log(result) // true

String Instance Methods

Tồn tại các phương thức thuộc lớp JS Strings có thể thao tác với regex:

Match

Chức năng: tìm kiếm tất cả các match

Cú pháp: str.match(pattern)

Trả về:

  • Nếu không sử dụng global flag g, match trả về mảng gồm: pattern, index, inputgroups với index là vị trí của match đầu tiên tìm được.
  • Còn nếu có global flag, trả về tất cả các match tìm thấy.
  • Giá trị trả về là null nếu như không có match

Ví dụ 1:

const str = "I love JavaScript"
 
const pattern = /love/
const matches = str.match(pattern)
 
console.log(matches) // ['love', index: 2, input: 'I love JavaScript', groups: undefined]

Ví dụ 2:

const str = "I love JavaScript"
 
const pattern = /love/g
const matches = str.match(pattern)
 
console.log(matches) // ['love']

Ví dụ 3:

const str = "I love JavaScript and also love C/C++"
 
const pattern = /love/g
const matches = str.match(pattern)
 
console.log(matches) // ['love', 'love']

Chức năng: tìm kiếm vị trí của match đầu tiên trong chuỗi.

Cú pháp: str.search(pattern)

Trả về: index của match đầu tiên có trong chuỗi hoặc -1 nếu không tìm thấy.

Ví dụ:

const str = "I love JavaScript"
 
const pattern = /love/g
const position = str.search(pattern)
 
console.log(position) // 2

Replace

Chức năng: tìm kiếm match trong chuỗi và thay thế bằng chuỗi mới.

Cú pháp: str.replace(pattern, newString)

Trả về: chuỗi mới sau khi thay thế.

Ví dụ:

const txt =
  "%I a%m teche%r% a%n%d es%ting t%h%an any other %jobs.\
D%o%es thi%s m%ot%iv%a%te %y%o%u to b%e a t%e%a%cher."
 
let matches = txt.replace(/%/g, "")
 
console.log(matches) // "I am teacher and I love teaching.There is nothing as more rewarding as educating and empowering people.I found teaching more interesting than any other jobs.Does this motivate you to be a teacher."