2011-07-07 28 views
16

Tôi muốn kiểm tra một số văn bản là trong một chuỗi ví dụ tôi có một chuỗiKiểm tra xem văn bản là trong một chuỗi

str = "car, bycicle, bus" 

và tôi có một chuỗi

str2 = "car" 

Tôi muốn kiểm tra nếu str2 nằm trong str.

Tôi là một newbie trong javascript vì vậy hãy chịu với tôi :)

Trân

+0

Một tài liệu tham khảo tốt đẹp trên 'phương pháp chuỗi' javascript: https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String – Equiso

Trả lời

21
if(str.indexOf(str2) >= 0) { 
    ... 
} 

Hoặc nếu bạn muốn đi con đường regex:

if(new RegExp(str2).test(str)) { 
    ... 
} 

Tuy nhiên bạn có thể gặp phải vấn đề với thoát (metacharacters) trong sau này, vì vậy các tuyến đường đầu tiên là dễ dàng hơn.

+0

này nên làm việc một cách hoàn hảo. 'indexOf' trả về chỉ số của đầu' str2' trong 'str'. trả về -1 nếu nó không nằm trong mảng. – switz

+1

Tôi thích sử dụng biến thể! = -1. ---- if (str.indexOf (str2)! = -1) {} –

2

str.lastIndexOf (str2)> 0; điều này sẽ hoạt động. chưa được kiểm tra.

+0

tại sao sử dụng 'lastIndexOf' thay vì chỉ' indexOf'? – hughes

+0

Chỉ cần lực lượng của thói quen, tôi đã nhận được đốt cháy trong quá khứ bằng cách sử dụng indexOf ... lastIndexOf hoạt động giống như xa như tôi biết khi chỉ có một ví dụ của chuỗi đang được tìm kiếm. –

+1

Thú vị. Trường hợp nào sẽ là trường hợp 'indexOf' gây ra rắc rối? – hughes

1

Vui lòng sử dụng này:

var s = "foo"; 
alert(s.indexOf("oo") > -1); 
+0

Điều này khác với câu trả lời được chấp nhận như thế nào ngoại trừ việc bạn sử dụng '>' thay vì '> ='? – Ram

+0

Ram, Cả hai đều giống nhau !! Nếu bạn sẽ thấy các điều kiện thì cả hai đều chỉ ra rằng bất kỳ giá trị nào bạn nhận được bằng cách sử dụng hàm "indexOf" phải lớn hơn hoặc bằng 0. – darshankhamar

+3

Cả hai đều giống như ý tôi muốn nói. Xin vui lòng không thêm một câu trả lời trùng lặp cho câu hỏi thay vì upvote câu trả lời hiện có nếu muốn. – Ram

Các vấn đề liên quan