2010-04-26 32 views

Trả lời

98
var re = new RegExp("/\b"+test+"\b/"); 

\b trong một chuỗi chữ là một nhân vật backspace. Khi đặt một regex trong một chuỗi chữ bạn cần thêm một vòng thoát: (. Bạn cũng không cần // trong bối cảnh này)

var re = new RegExp("\\b"+test+"\\b"); 

+1

Toán tử 'mới' không cần thiết, theo http://bclary.com/2004/11/07/#a-15.10.3 – James

+15

Có rất nhiều nơi mà hàm xây dựng của một kiểu dựng sẵn có thể được sử dụng cả khi có hoặc không có 'mới'. Tuy nhiên, để nhất quán với các đối tượng khác mà điều này có thể không đúng, và rõ ràng nói chung, tôi sẽ luôn luôn sử dụng 'mới'. – bobince

+1

Một cách khác là sử dụng dấu nháy đơn để rõ ràng, do đó bạn không cần phải thoát khỏi dấu gạch chéo ngược: «RegExp mới ('\ b' + test + '\ b'); ' – IQAndreas

5

bạn có thể sử dụng

/(^|,)52(,|$)/.test('51,52,53') 

nhưng tôi khuyên bạn nên sử dụng

var list = '51,52,53'; 
function test2(list, test){ 
    return !((","+list+",").indexOf(","+test+",") === -1) 
} 
alert(test2(list,52))