Câu trả lời:
var re = new RegExp("/\b"+test+"\b/");
\btrong 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.