2012-12-12 38 views
10

Làm cách nào để so sánh một phần của chuỗi - ví dụ: nếu tôi muốn so sánh chuỗi A là một phần của Chuỗi b - Tôi muốn tìm ra cách này: String A = "abcd" String B = " abcdef "cần phải trả lại true- Làm thế nào để tôi làm điều đó tôi JavaScript, so sánh phải là cùng một từ, để sử dụng chuỗi con tôi không biết nơi để cung cấp cho các giới hạn vị trí. Bất kỳ ý tưởng?So sánh một phần của chuỗi

+1

bạn cần phải cung cấp mô tả giống như và một số ví dụ hoặc mã – polin

Trả lời

1

"abcdef".indexOf("abcd") !== -1 sẽ không sao

15

Bạn có thể sử dụng indexOf:

if (stringB.indexOf(stringA) > -1) { 
    // String B contains String A 
} 
+0

Cảm ơn rất nhiều ... – user1022521

1

Bạn có thể thử tìm kiếm javascript cũng

if(stringA.search(stringB) > -1){ 
} 
1

Sử dụng biểu thức chính quy có thể giúp bạn.

var patt = new RegExp(stringA, 'i'); 
if(stringB.match(patt)){        
    return true; 
} 
7

Như thế này:

var str = "abcdef"; 
if (str.indexOf("abcd") >= 0) 

Lưu ý rằng đây là trường hợp nhạy cảm. Nếu bạn muốn tìm kiếm case-insensitive, bạn có thể viết

if (str.toLowerCase().indexOf("abcd") >= 0) 

Hoặc,

if (/abcd/i.test(str)) 

Và một phiên bản chung cho một tìm kiếm case-insensitive, bạn có thể thiết lập các chuỗi mọi trường hợp

if (stringA.toLowerCase().indexOf(stringB.toLowerCase()) >= 0) 
1

Sử dụng chỉ mụcOf hoặc khớp không cần thiết chậm nếu bạn đang xử lý các chuỗi lớn và bạn chỉ cần xác thực phần đầu của chuỗi. Một giải pháp tốt hơn là sử dụng startsWith() hoặc function-- tương đương từ https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith:

if (!String.prototype.startsWith) { 
    String.prototype.startsWith = function(searchString, position){ 
     position = position || 0; 
     return this.substr(position, searchString.length) === searchString; 
    }; 
}