Bạn có hai possibilites:
Biểu thức chính quy :
(new RegExp('word')).test(str)
// or
/word/.test(str)
indexOf
:
str.indexOf('word') !== -1
Biểu thức thông thường dường như nhanh hơn (ít nhất là trong Chrome 10).
Kiểm tra hiệu suất - ngắn haystack
Kiểm tra hiệu suất - haystack dài
Cập nhật 2011:
Không thể nói chắc chắn phương pháp nào nhanh hơn. Sự khác biệt giữa các trình duyệt là rất lớn. Mặc dù trong Chrome 10 indexOf
dường như nhanh hơn, nhưng trong Safari 5, indexOf
rõ ràng là chậm hơn bất kỳ phương pháp nào khác.
Bạn phải xem và cố gắng cho chính mình. Nó phụ thuộc vào nhu cầu của bạn. Ví dụ: tìm kiếm không phân biệt chữ hoa chữ thường nhanh hơn với các biểu thức thông thường.
Cập nhật 2018:
Chỉ để cứu mọi người khỏi tự chạy thử nghiệm, đây là kết quả hiện tại cho hầu hết các trình duyệt phổ biến, tỷ lệ phần trăm cho thấy hiệu suất tăng so với kết quả nhanh nhất tiếp theo (thay đổi giữa các trình duyệt):
Chrome: indexOf (nhanh hơn 98%) <-- wow
Firefox: RegExp được lưu trong bộ nhớ cache (nhanh hơn 18%)
IE11: RegExp được lưu trong bộ nhớ cache (nhanh hơn 10%)
Edge: indexOf (nhanh hơn 18%)
Safari: RegExp được lưu trong bộ nhớ cache (nhanh hơn 0,4%)
Lưu ý rằng RegExp được lưu trong bộ nhớ cache là: var r = new RegExp('simple'); var c = r.test(str);
trái ngược với:/simple/.test(str)
regex
thẻ)?