String.prototype.search()
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
Phương thức search() của các giá trị String thực hiện tìm kiếm kết quả khớp giữa một biểu thức chính quy và chuỗi này, trả về chỉ số của kết quả khớp đầu tiên trong chuỗi.
Try it
const paragraph = "I think Ruth's dog is cuter than your dog!";
// Anything not a word character, whitespace or apostrophe
const regex = /[^\w\s']/g;
console.log(paragraph.search(regex));
// Expected output: 41
console.log(paragraph[paragraph.search(regex)]);
// Expected output: "!"
Cú pháp
search(regexp)
Tham số
regexp-
Một đối tượng biểu thức chính quy, hoặc bất kỳ đối tượng nào có phương thức
Symbol.search.Nếu
regexpkhông phải là đối tượngRegExpvà không có phương thứcSymbol.search, nó được ngầm chuyển đổi thànhRegExpbằng cách dùngnew RegExp(regexp).
Giá trị trả về
Chỉ số của kết quả khớp đầu tiên giữa biểu thức chính quy và chuỗi đã cho, hoặc -1 nếu không tìm thấy kết quả khớp nào.
Mô tả
Triển khai của String.prototype.search() không làm gì nhiều ngoài việc gọi phương thức Symbol.search của đối số với chuỗi làm tham số đầu tiên. Triển khai thực tế đến từ RegExp.prototype[Symbol.search]().
Cờ g của regexp không có hiệu lực trên kết quả search(), và việc tìm kiếm luôn diễn ra như thể lastIndex của regex là 0. Để biết thêm thông tin về hành vi của search(), xem RegExp.prototype[Symbol.search]().
Khi bạn muốn biết liệu một mẫu có được tìm thấy không, và cũng muốn biết chỉ số của nó trong chuỗi, hãy dùng search().
- Nếu bạn chỉ muốn biết nó có tồn tại hay không, hãy dùng phương thức
RegExp.prototype.test(), trả về boolean. - Nếu bạn cần nội dung của văn bản đã khớp, hãy dùng
String.prototype.match()hoặcRegExp.prototype.exec().
Ví dụ
>Sử dụng search()
Ví dụ sau tìm kiếm một chuỗi với hai đối tượng regex khác nhau để cho thấy tìm kiếm thành công (giá trị dương) so với tìm kiếm không thành công (-1).
const str = "hey JudE";
const re = /[A-Z]/;
const reDot = /[.]/;
console.log(str.search(re)); // trả về 4, là chỉ số của chữ hoa đầu tiên "J"
console.log(str.search(reDot)); // trả về -1 không tìm thấy dấu chấm '.'
Thông số kỹ thuật
| Specification |
|---|
| ECMAScript® 2027 Language Specification> # sec-string.prototype.search> |