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/giCá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ề:
truehoặcfalse. -
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,matchtrả về mảng gồm:pattern,index,inputvàgroupsvớiindexlà 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à
nullnế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']Search
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) // 2Replace
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."