Câu trả lời:
var re = new RegExp("/\b"+test+"\b/");
\b
trong một chuỗi ký tự là một ký tự xóa lùi. Khi đặt một regex trong một chuỗi ký tự, bạn cần thêm một vòng thoát:
var re = new RegExp("\\b"+test+"\\b");
(Bạn cũng không cần //
trong bối cảnh này.)
new RegExp('\b'+test+'\b');
When putting a regex in a string literal you need one more round of escaping
; có thông tin cơ bản nào về (lý do) điều này không?
new
. Tuy nhiên, để nhất quán với các đối tượng khác, nơi điều này có thể không đúng, và sự rõ ràng nói chung, tôi sẽ luôn sử dụngnew
.