Tìm hiểu từ hơn 300 ví dụ. Với trình chỉnh sửa của chúng tôi, bạn có thể chỉnh sửa CSS và nhấp vào nút để xem kết quả Chuyển đến ví dụ về CSS
Sử dụng thực đơnChúng tôi khuyên bạn nên đọc hướng dẫn này, theo trình tự được liệt kê trong menu Nếu bạn có màn hình lớn, menu sẽ luôn ở bên trái Nếu bạn có màn hình nhỏ, hãy mở menu bằng cách nhấp vào ký hiệu menu trên cùng ☰
Mẫu CSSChúng tôi đã tạo một số W3 đáp ứng. Các mẫu CSS để bạn sử dụng Bạn có thể tự do sửa đổi, lưu, chia sẻ và sử dụng chúng trong tất cả các dự án của mình Mẫu CSS miễn phí
bài tập cssKiểm tra bản thân với các bài tập
Câu đố về CSSKiểm tra kỹ năng CSS của bạn bằng một bài kiểm tra Bắt đầu bài kiểm tra CSS
Việc học của tôiTheo dõi tiến trình của bạn với chương trình "Học tập của tôi" miễn phí tại W3Schools Đăng nhập vào tài khoản của bạn và bắt đầu kiếm điểm Đây là một tính năng tùy chọn. Bạn có thể học W3Schools mà không cần sử dụng My Learning
Tài liệu tham khảo CSSTại W3Schools, bạn sẽ tìm thấy các tham chiếu CSS hoàn chỉnh của tất cả các thuộc tính và bộ chọn với cú pháp, ví dụ, hỗ trợ trình duyệt, v.v. Biểu thức chính quy là các mẫu được sử dụng để so khớp các tổ hợp ký tự trong chuỗi. Trong JavaScript, biểu thức chính quy cũng là đối tượng. Các mẫu này được sử dụng với các phương pháp const re = new RegExp("ab+c");
8 và const re = new RegExp("ab+c");
9 của function escapeRegExp(string) {
return string.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string
}
0, và với các phương pháp function escapeRegExp(string) {
return string.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string
}
1, function escapeRegExp(string) {
return string.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string
}
2, function escapeRegExp(string) {
return string.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string
}
3, function escapeRegExp(string) {
return string.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string
}
4, ________2__5 và function escapeRegExp(string) {
return string.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string
}
6 của function escapeRegExp(string) {
return string.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string
}
7. Chương này mô tả các biểu thức chính quy JavaScriptBạn xây dựng một biểu thức chính quy theo một trong hai cách - Sử dụng một biểu thức chính quy, bao gồm một mẫu được đặt giữa các dấu gạch chéo, như sau
const re = /ab+c/;
Các ký tự biểu thức chính quy cung cấp khả năng biên dịch biểu thức chính quy khi tập lệnh được tải. Nếu biểu thức chính quy không đổi, việc sử dụng biểu thức này có thể cải thiện hiệu suất - Hoặc gọi hàm khởi tạo của đối tượng
function escapeRegExp(string) {
return string.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string
}
0 như sauconst re = new RegExp("ab+c");
Việc sử dụng hàm tạo cung cấp khả năng biên dịch thời gian chạy của biểu thức chính quy. Sử dụng hàm tạo khi bạn biết mẫu biểu thức chính quy sẽ thay đổi hoặc bạn không biết mẫu và đang lấy nó từ một nguồn khác, chẳng hạn như đầu vào của người dùng
Mẫu biểu thức chính quy bao gồm các ký tự đơn giản, chẳng hạn như function escapeRegExp(string) {
return string.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string
}
9 hoặc kết hợp các ký tự đơn giản và đặc biệt, chẳng hạn như const myRe = /d(b+)d/g;
const myArray = myRe.exec("cdbbdbsbz");
0 hoặc const myRe = /d(b+)d/g;
const myArray = myRe.exec("cdbbdbsbz");
1. Ví dụ cuối cùng bao gồm dấu ngoặc đơn, được sử dụng làm thiết bị bộ nhớ. Khớp được thực hiện với phần này của mẫu được ghi nhớ để sử dụng sau này, như được mô tả trongGhi chú. Nếu bạn đã quen thuộc với các dạng của biểu thức chính quy, bạn cũng có thể đọc cheat sheet để tra cứu nhanh một mẫu/cấu trúc cụ thể Các mẫu đơn giản được tạo từ các ký tự mà bạn muốn tìm đối sánh trực tiếp. Ví dụ: mẫu function escapeRegExp(string) {
return string.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string
}
9 khớp với các tổ hợp ký tự trong chuỗi chỉ khi chuỗi chính xác const myRe = /d(b+)d/g;
const myArray = myRe.exec("cdbbdbsbz");
3 xảy ra (tất cả các ký tự cùng nhau và theo thứ tự đó). Một trận đấu như vậy sẽ thành công trong chuỗi const myRe = /d(b+)d/g;
const myArray = myRe.exec("cdbbdbsbz");
4 và const myRe = /d(b+)d/g;
const myArray = myRe.exec("cdbbdbsbz");
5. Trong cả hai trường hợp, kết quả khớp với chuỗi con const myRe = /d(b+)d/g;
const myArray = myRe.exec("cdbbdbsbz");
3. Không có sự trùng khớp nào trong chuỗi const myRe = /d(b+)d/g;
const myArray = myRe.exec("cdbbdbsbz");
7 bởi vì trong khi nó chứa chuỗi con const myRe = /d(b+)d/g;
const myArray = myRe.exec("cdbbdbsbz");
8, thì nó không chứa chính xác chuỗi con const myRe = /d(b+)d/g;
const myArray = myRe.exec("cdbbdbsbz");
3Khi tìm kiếm khớp yêu cầu nhiều thứ hơn là khớp trực tiếp, chẳng hạn như tìm một hoặc nhiều chữ b hoặc tìm khoảng trắng, bạn có thể bao gồm các ký tự đặc biệt trong mẫu. Ví dụ: để khớp một const myArray = /d(b+)d/g.exec("cdbbdbsbz");
// similar to 'cdbbdbsbz'.match(/d(b+)d/g); however,
// 'cdbbdbsbz'.match(/d(b+)d/g) outputs [ "dbbd" ]
// while /d(b+)d/g.exec('cdbbdbsbz') outputs [ 'dbbd', 'bb', index: 1, input: 'cdbbdbsbz' ]
0 theo sau là số 0 hoặc nhiều hơn nữa const myArray = /d(b+)d/g.exec("cdbbdbsbz");
// similar to 'cdbbdbsbz'.match(/d(b+)d/g); however,
// 'cdbbdbsbz'.match(/d(b+)d/g) outputs [ "dbbd" ]
// while /d(b+)d/g.exec('cdbbdbsbz') outputs [ 'dbbd', 'bb', index: 1, input: 'cdbbdbsbz' ]
1 theo sau là const myArray = /d(b+)d/g.exec("cdbbdbsbz");
// similar to 'cdbbdbsbz'.match(/d(b+)d/g); however,
// 'cdbbdbsbz'.match(/d(b+)d/g) outputs [ "dbbd" ]
// while /d(b+)d/g.exec('cdbbdbsbz') outputs [ 'dbbd', 'bb', index: 1, input: 'cdbbdbsbz' ]
2, bạn sẽ sử dụng mẫu const myRe = /d(b+)d/g;
const myArray = myRe.exec("cdbbdbsbz");
0. const myArray = /d(b+)d/g.exec("cdbbdbsbz");
// similar to 'cdbbdbsbz'.match(/d(b+)d/g); however,
// 'cdbbdbsbz'.match(/d(b+)d/g) outputs [ "dbbd" ]
// while /d(b+)d/g.exec('cdbbdbsbz') outputs [ 'dbbd', 'bb', index: 1, input: 'cdbbdbsbz' ]
4 sau const myArray = /d(b+)d/g.exec("cdbbdbsbz");
// similar to 'cdbbdbsbz'.match(/d(b+)d/g); however,
// 'cdbbdbsbz'.match(/d(b+)d/g) outputs [ "dbbd" ]
// while /d(b+)d/g.exec('cdbbdbsbz') outputs [ 'dbbd', 'bb', index: 1, input: 'cdbbdbsbz' ]
1 có nghĩa là "0 hoặc nhiều lần xuất hiện của mục trước đó. " Trong chuỗi const myArray = /d(b+)d/g.exec("cdbbdbsbz");
// similar to 'cdbbdbsbz'.match(/d(b+)d/g); however,
// 'cdbbdbsbz'.match(/d(b+)d/g) outputs [ "dbbd" ]
// while /d(b+)d/g.exec('cdbbdbsbz') outputs [ 'dbbd', 'bb', index: 1, input: 'cdbbdbsbz' ]
6, mẫu này sẽ khớp với chuỗi con const myArray = /d(b+)d/g.exec("cdbbdbsbz");
// similar to 'cdbbdbsbz'.match(/d(b+)d/g); however,
// 'cdbbdbsbz'.match(/d(b+)d/g) outputs [ "dbbd" ]
// while /d(b+)d/g.exec('cdbbdbsbz') outputs [ 'dbbd', 'bb', index: 1, input: 'cdbbdbsbz' ]
7Các trang sau đây cung cấp danh sách các ký tự đặc biệt khác nhau phù hợp với từng danh mục, cùng với các mô tả và ví dụ khẳng địnhCác xác nhận bao gồm các ranh giới, cho biết phần đầu và phần cuối của dòng và từ cũng như các mẫu khác cho biết theo một cách nào đó rằng có thể khớp (bao gồm biểu thức nhìn về phía trước, nhìn về phía sau và biểu thức điều kiện) lớp nhân vậtPhân biệt các loại ký tự. Ví dụ, phân biệt giữa các chữ cái và chữ số Nhóm và phản hồiCác nhóm nhóm nhiều mẫu thành một tổng thể và việc chụp các nhóm cung cấp thêm thông tin khớp phụ khi sử dụng mẫu biểu thức chính quy để khớp với một chuỗi. Backreferences đề cập đến một nhóm được chụp trước đó trong cùng một biểu thức chính quy định lượngCho biết số lượng ký tự hoặc biểu thức để khớp Thuộc tính Unicode thoátPhân biệt dựa trên các thuộc tính ký tự unicode, ví dụ: chữ hoa và chữ thường, ký hiệu toán học và dấu chấm câu Nếu bạn muốn xem tất cả các ký tự đặc biệt có thể được sử dụng trong biểu thức chính quy trong một bảng, hãy xem phần sau Ký tự đặc biệt trong biểu thức chính quy. Characters / constructsCorresponding articleconst myArray = /d(b+)d/g.exec("cdbbdbsbz");
// similar to 'cdbbdbsbz'.match(/d(b+)d/g); however,
// 'cdbbdbsbz'.match(/d(b+)d/g) outputs [ "dbbd" ]
// while /d(b+)d/g.exec('cdbbdbsbz') outputs [ 'dbbd', 'bb', index: 1, input: 'cdbbdbsbz' ]
8, const myArray = /d(b+)d/g.exec("cdbbdbsbz");
// similar to 'cdbbdbsbz'.match(/d(b+)d/g); however,
// 'cdbbdbsbz'.match(/d(b+)d/g) outputs [ "dbbd" ]
// while /d(b+)d/g.exec('cdbbdbsbz') outputs [ 'dbbd', 'bb', index: 1, input: 'cdbbdbsbz' ]
9, const myRe = new RegExp("d(b+)d", "g");
const myArray = myRe.exec("cdbbdbsbz");
0, const myRe = new RegExp("d(b+)d", "g");
const myArray = myRe.exec("cdbbdbsbz");
1, const myRe = new RegExp("d(b+)d", "g");
const myArray = myRe.exec("cdbbdbsbz");
2, const myRe = new RegExp("d(b+)d", "g");
const myArray = myRe.exec("cdbbdbsbz");
3, const myRe = new RegExp("d(b+)d", "g");
const myArray = myRe.exec("cdbbdbsbz");
4, const myRe = new RegExp("d(b+)d", "g");
const myArray = myRe.exec("cdbbdbsbz");
5, const myRe = new RegExp("d(b+)d", "g");
const myArray = myRe.exec("cdbbdbsbz");
6, const myRe = new RegExp("d(b+)d", "g");
const myArray = myRe.exec("cdbbdbsbz");
7, const myRe = new RegExp("d(b+)d", "g");
const myArray = myRe.exec("cdbbdbsbz");
8, const myRe = new RegExp("d(b+)d", "g");
const myArray = myRe.exec("cdbbdbsbz");
9, const myRe = /d(b+)d/g;
const myArray = myRe.exec("cdbbdbsbz");
console.log(`The value of lastIndex is ${myRe.lastIndex}`);
// "The value of lastIndex is 5"
0, const myRe = /d(b+)d/g;
const myArray = myRe.exec("cdbbdbsbz");
console.log(`The value of lastIndex is ${myRe.lastIndex}`);
// "The value of lastIndex is 5"
1, const myRe = /d(b+)d/g;
const myArray = myRe.exec("cdbbdbsbz");
console.log(`The value of lastIndex is ${myRe.lastIndex}`);
// "The value of lastIndex is 5"
2, const myRe = /d(b+)d/g;
const myArray = myRe.exec("cdbbdbsbz");
console.log(`The value of lastIndex is ${myRe.lastIndex}`);
// "The value of lastIndex is 5"
3, const myRe = /d(b+)d/g;
const myArray = myRe.exec("cdbbdbsbz");
console.log(`The value of lastIndex is ${myRe.lastIndex}`);
// "The value of lastIndex is 5"
4, const myRe = /d(b+)d/g;
const myArray = myRe.exec("cdbbdbsbz");
console.log(`The value of lastIndex is ${myRe.lastIndex}`);
// "The value of lastIndex is 5"
5, const myRe = /d(b+)d/g;
const myArray = myRe.exec("cdbbdbsbz");
console.log(`The value of lastIndex is ${myRe.lastIndex}`);
// "The value of lastIndex is 5"
6, const myRe = /d(b+)d/g;
const myArray = myRe.exec("cdbbdbsbz");
console.log(`The value of lastIndex is ${myRe.lastIndex}`);
// "The value of lastIndex is 5"
7, const myRe = /d(b+)d/g;
const myArray = myRe.exec("cdbbdbsbz");
console.log(`The value of lastIndex is ${myRe.lastIndex}`);
// "The value of lastIndex is 5"
8lớp nhân vật const myRe = /d(b+)d/g;
const myArray = myRe.exec("cdbbdbsbz");
console.log(`The value of lastIndex is ${myRe.lastIndex}`);
// "The value of lastIndex is 5"
9, const myArray = /d(b+)d/g.exec("cdbbdbsbz");
console.log(`The value of lastIndex is ${/d(b+)d/g.lastIndex}`);
// "The value of lastIndex is 0"
0, const myArray = /d(b+)d/g.exec("cdbbdbsbz");
console.log(`The value of lastIndex is ${/d(b+)d/g.lastIndex}`);
// "The value of lastIndex is 0"
1, const myArray = /d(b+)d/g.exec("cdbbdbsbz");
console.log(`The value of lastIndex is ${/d(b+)d/g.lastIndex}`);
// "The value of lastIndex is 0"
2, const myArray = /d(b+)d/g.exec("cdbbdbsbz");
console.log(`The value of lastIndex is ${/d(b+)d/g.lastIndex}`);
// "The value of lastIndex is 0"
3, const myArray = /d(b+)d/g.exec("cdbbdbsbz");
console.log(`The value of lastIndex is ${/d(b+)d/g.lastIndex}`);
// "The value of lastIndex is 0"
4, const myArray = /d(b+)d/g.exec("cdbbdbsbz");
console.log(`The value of lastIndex is ${/d(b+)d/g.lastIndex}`);
// "The value of lastIndex is 0"
5, const myArray = /d(b+)d/g.exec("cdbbdbsbz");
console.log(`The value of lastIndex is ${/d(b+)d/g.lastIndex}`);
// "The value of lastIndex is 0"
6khẳng định const myArray = /d(b+)d/g.exec("cdbbdbsbz");
console.log(`The value of lastIndex is ${/d(b+)d/g.lastIndex}`);
// "The value of lastIndex is 0"
7, const myArray = /d(b+)d/g.exec("cdbbdbsbz");
console.log(`The value of lastIndex is ${/d(b+)d/g.lastIndex}`);
// "The value of lastIndex is 0"
8, const myArray = /d(b+)d/g.exec("cdbbdbsbz");
console.log(`The value of lastIndex is ${/d(b+)d/g.lastIndex}`);
// "The value of lastIndex is 0"
9, const re = /pattern/flags;
0, const re = /pattern/flags;
1Nhóm và phản hồi const re = /pattern/flags;
2, const re = /pattern/flags;
3, const re = /pattern/flags;
4, const re = /pattern/flags;
5, const re = /pattern/flags;
6, const re = /pattern/flags;
7định lượng const re = /pattern/flags;
8, const re = /pattern/flags;
9 Thoát tài sản UnicodeGhi chú. Một bảng cheat lớn hơn cũng có sẵn (chỉ tổng hợp các phần của các bài viết riêng lẻ đó) Nếu bạn cần sử dụng bất kỳ ký tự đặc biệt nào theo nghĩa đen (ví dụ: thực sự đang tìm kiếm const re = new RegExp("pattern", "flags");
0), bạn phải thoát ký tự đó bằng cách đặt dấu gạch chéo ngược trước ký tự đó. Ví dụ: để tìm kiếm const myArray = /d(b+)d/g.exec("cdbbdbsbz");
// similar to 'cdbbdbsbz'.match(/d(b+)d/g); however,
// 'cdbbdbsbz'.match(/d(b+)d/g) outputs [ "dbbd" ]
// while /d(b+)d/g.exec('cdbbdbsbz') outputs [ 'dbbd', 'bb', index: 1, input: 'cdbbdbsbz' ]
0 theo sau là const re = new RegExp("pattern", "flags");
0 theo sau là const myArray = /d(b+)d/g.exec("cdbbdbsbz");
// similar to 'cdbbdbsbz'.match(/d(b+)d/g); however,
// 'cdbbdbsbz'.match(/d(b+)d/g) outputs [ "dbbd" ]
// while /d(b+)d/g.exec('cdbbdbsbz') outputs [ 'dbbd', 'bb', index: 1, input: 'cdbbdbsbz' ]
1, bạn sẽ sử dụng const re = new RegExp("pattern", "flags");
4 — dấu gạch chéo ngược "thoát" const re = new RegExp("pattern", "flags");
0, biến nó thành nghĩa đen thay vì đặc biệtTương tự, nếu bạn đang viết một biểu thức chính quy bằng chữ và cần khớp với dấu gạch chéo ("/"), bạn cần thoát dấu đó (nếu không, nó sẽ kết thúc mẫu). Ví dụ: để tìm kiếm chuỗi "/example/" theo sau là một hoặc nhiều ký tự chữ cái, bạn sẽ sử dụng const re = new RegExp("pattern", "flags");
6—dấu gạch chéo ngược trước mỗi dấu gạch chéo biến chúng thành chữĐể khớp với dấu gạch chéo ngược theo nghĩa đen, bạn cần thoát khỏi dấu gạch chéo ngược. Chẳng hạn, để khớp với chuỗi "C. \" trong đó "C" có thể là bất kỳ chữ cái nào, bạn sẽ sử dụng const re = new RegExp("pattern", "flags");
7 — dấu gạch chéo ngược đầu tiên thoát khỏi dấu gạch chéo ngược sau nó, do đó, biểu thức sẽ tìm kiếm một dấu gạch chéo ngược theo nghĩa đenNếu sử dụng hàm tạo function escapeRegExp(string) {
return string.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string
}
0 với một chuỗi ký tự, hãy nhớ rằng dấu gạch chéo ngược là một dấu gạch chéo ngược trong chuỗi ký tự, vì vậy, để sử dụng nó trong biểu thức chính quy, bạn cần thoát nó ở mức ký tự chuỗi. const re = new RegExp("pattern", "flags");
4 và const re = new RegExp("ab+c");
00 tạo cùng một biểu thức, tìm kiếm "a" theo sau là chữ "*" theo sau là "b"Nếu chuỗi thoát không phải là một phần của mẫu của bạn, bạn có thể thêm chúng bằng cách sử dụng const re = new RegExp("ab+c");
01function escapeRegExp(string) {
return string.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string
}
Chữ "g" sau biểu thức chính quy là một tùy chọn hoặc cờ thực hiện tìm kiếm toàn cầu, tìm kiếm trong toàn bộ chuỗi và trả về tất cả các kết quả phù hợp. Nó được giải thích chi tiết dưới đây trong Tại sao điều này không được tích hợp vào JavaScript? Dấu ngoặc đơn xung quanh bất kỳ phần nào của mẫu biểu thức chính quy làm cho phần đó của chuỗi con phù hợp được ghi nhớ. Sau khi được ghi nhớ, chuỗi con có thể được gọi lại cho mục đích sử dụng khác. Xem để biết thêm chi tiết Biểu thức chính quy được sử dụng với các phương thức function escapeRegExp(string) {
return string.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string
}
0 const re = new RegExp("ab+c");
9 và const re = new RegExp("ab+c");
8 và với các phương thức function escapeRegExp(string) {
return string.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string
}
7 function escapeRegExp(string) {
return string.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string
}
1, function escapeRegExp(string) {
return string.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string
}
3, function escapeRegExp(string) {
return string.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string
}
5 và function escapeRegExp(string) {
return string.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string
}
6Phương thứcMô tảconst re = new RegExp("ab+c");
8Thực hiện tìm kiếm đối sánh trong một chuỗi. Nó trả về một mảng thông tin hoặc const re = new RegExp("ab+c");
11 khi không khớp. const re = new RegExp("ab+c");
9Kiểm tra sự trùng khớp trong một chuỗi. Nó trả về const re = new RegExp("ab+c");
13 hoặc const re = new RegExp("ab+c");
14. function escapeRegExp(string) {
return string.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string
}
1Trả về một mảng chứa tất cả các kết quả phù hợp, bao gồm cả các nhóm bắt giữ hoặc const re = new RegExp("ab+c");
11 nếu không tìm thấy kết quả phù hợp. function escapeRegExp(string) {
return string.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string
}
2Trả về một iterator chứa tất cả các kết quả phù hợp, bao gồm cả các nhóm bắt giữ. function escapeRegExp(string) {
return string.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string
}
5Kiểm tra sự trùng khớp trong một chuỗi. Nó trả về chỉ số của trận đấu, hoặc const re = new RegExp("ab+c");
19 nếu tìm kiếm không thành công. function escapeRegExp(string) {
return string.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string
}
3 Thực hiện tìm kiếm khớp trong một chuỗi và thay thế chuỗi con khớp bằng một chuỗi con thay thế. function escapeRegExp(string) {
return string.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string
}
4Thực hiện tìm kiếm tất cả các kết quả phù hợp trong một chuỗi và thay thế các chuỗi con phù hợp bằng một chuỗi con thay thế. function escapeRegExp(string) {
return string.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string
}
6Sử dụng một biểu thức chính quy hoặc một chuỗi cố định để ngắt một chuỗi thành một mảng các chuỗi conKhi bạn muốn biết liệu một mẫu có được tìm thấy trong một chuỗi hay không, hãy sử dụng các phương thức const re = new RegExp("ab+c");
9 hoặc function escapeRegExp(string) {
return string.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string
}
5; . Nếu bạn sử dụng const re = new RegExp("ab+c");
8 hoặc function escapeRegExp(string) {
return string.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string
}
1 và nếu khớp thành công, các phương thức này trả về một mảng và cập nhật các thuộc tính của đối tượng biểu thức chính quy được liên kết và cả đối tượng biểu thức chính quy được xác định trước, function escapeRegExp(string) {
return string.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string
}
0. Nếu khớp không thành công, phương thức const re = new RegExp("ab+c");
8 trả về const re = new RegExp("ab+c");
11 (bắt buộc phải trả về const re = new RegExp("ab+c");
14)Trong ví dụ sau, người dùng phải nhập số điện thoại. Khi người dùng nhấn nút "Kiểm tra", tập lệnh sẽ kiểm tra tính hợp lệ của số. Nếu số hợp lệ (khớp với chuỗi ký tự được chỉ định bởi biểu thức chính quy), tập lệnh sẽ hiển thị thông báo cảm ơn người dùng và xác nhận số. Nếu số không hợp lệ, tập lệnh sẽ thông báo cho người dùng rằng số điện thoại không hợp lệ |