Khanh Hoang - Kenn
Kenn is a user experience designer and front end developer who enjoys creating beautiful and usable web and mobile experiences.
Cũng như những ngôn ngữ lập trình khác biểu thức quy tắc (regular expression) là một tính năng đắc lực để kiểm tra, so sánh, thay thế, tách, ghép một chuỗi nào đó theo một quy tắc bạn quy định, nếu bạn đã tìm hiểu về biểu thức quy tắc trong ngôn ngữ PHP rồi thì sẽ thấy javaScript cũng có cách quy định tương tự chỉ khác ở một số hàm xử lý biểu thức quy tắc.
Trong javaScript ta có 2 cách để khai báo biểu thức quy tắc:
Cách thứ nhất thường dùng nhiều hơn bởi sự đơn giản trong khai báo.
Khi xử lý một chuỗi với biểu thức điều kiện một điều quan trọng là bạn muốn khi áp dụng ký tự có phân biệt chữ in hoa in thường hay không và áp dụng cho đoạn chuỗi đầu tiên tìm được hay tất cả các đoạn chuỗi hợp quy tắc, ta sẽ được tìm hiểu điều này sau đây:
Ví dụ: thay ký tự n bằng dấu "*"
var str = 'Xin chào!, tôi là VANKHUONG 777'; var str1 = str.replace(/n/gi, '*'); document.write(str1); // Xi* chào!, tôi là VA*KHUO*G 777 var str2 = str.replace(/n/,'*'); document.write(str2); // Xi* chào!, tôi là VANKHUONG 777
Tiếp theo ta sẽ tìm hiểu cách viết biểu thức quy tắc với cách dùng ký tự đại diện được quy ước trong biểu thức.
Ví du:
var str = 'ngo van khuong'; var str3 = str.replace(/n\b/, '*'); // str3: ngo va* khuong var str4 = str.replace(/n\B/, '*'); // str4: *go van khuo*g
Ví dụ:
var str = 'Xin chào!, tôi là VANKHUONG 777'; var str5 = str.replace(/\w/g, '*'); // str5: *** **à*!, *ô* *à ********* ***
var str = 'good night, godgad, gd, gooogle'; var str6 = str.replace(/go?d/gi, '*'); // str6: good night, *gad, *, gooogle var str7 = str.replace(/g(oo)?d/gi, '*'); // str7: * night, godgad, *, gooogle var str8 = str.replace(/go*d/gi, '*'); // str8: * night, *gad, *, gooogle var str9 = str.replace(/go+/gi, '*'); // str9: *d night, *dgad, gd, *gle var str10 = str.replace(/o{2}/gi, '*'); // str10: g*d night, godgad, gd, gooogle var str11 = str.replace(/o{2,}/gi, '*'); // str11: g*d night, godgad, gd, g*gle var str12 = str.replace(/go{1,3}d/gi, '*'); // str12: *d night, *dgad, gd, gooogle
Ví dụ:
var str ='ABCDEF, abcdef, 12345'; var str13 = str.replace(/[Ab1]/g, '*'); // str13: *BCDEF, a*cdef, *2345 var str14 = str.replace(/[A-Cd-f1-35]/g, '*'); // str14: ***DEF, abc***, ***4* var str15 = str.replace(/[^A-f4-5]/g, '*'); // str15: ABCDEF**abcdef*****45
Với biểu thức quy tắc bạn có thể có nhiều cách viết khác nhau cùng theo một quy tắc hay cùng cho bạn kết quả giống nhau, có người viết dài người viết ngắn nhưng miễn sao bạn thấy giễ hiểu là được, nếu bạn viết quen thì biểu thức nhìn sẽ ngắn hơn. Nếu bạn không hiểu rõ các quy ước trong biểu thức quy tắc thì bạn cũng chẳng hiểu người khác viết gì vì đa số những người có kinh nghiệm đều viết biểu thức ngắn và chặt chẽ, hy vọng bạn thấy bài viết này bổ ích và có thể vận dụng nó một cách hiệu quả.
Bình luận (0)
Add Comment