2012-12-12 8 views
10

Wie kann ich einen Teil der Zeichenkette vergleichen - zum Beispiel, wenn ich die Zeichenkette A vergleichen will ist Teil von Zeichenkette b - Ich würde das gerne herausfinden: Zeichenkette A = "abcd" Zeichenkette B = " abcdef "muss wahr zurückkehren- Wie mache ich das? Ich JavaScript, vergleichen Sie müssen die gleichen Worte sein, Teilstring zu verwenden Ich weiß nicht, wo die Grenze die Position geben. Irgendwelche Ideen?Teil der Zeichenkette vergleichen

+1

benötigen Sie weitere Beschreibung wie und einige Beispiele oder Codes – polin

Antwort

1

"abcdef".indexOf("abcd") !== -1 sollte okay sein

15

Sie indexOf verwenden können:

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

Dank so viel geben ... – user1022521

1

Sie die Javascript-Suche auch

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

Verwenden von regulären Ausdruck, den Sie könnte helfen versuchen.

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

So:

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

Beachten Sie, dass dieser Fall empfindlich ist. Wenn Sie ein Groß- und Kleinschreibung suchen möchten, können Sie

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

Oder für Groß- und Kleinschreibung Suche

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

und eine allgemeine Version schreiben, können Sie Strings jeden Fall gesetzt

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

Die Verwendung von indexOf oder Match ist unnötig langsam, wenn Sie mit großen Strings arbeiten und nur den Anfang des Strings validieren müssen. Eine bessere Lösung ist starts() oder dessen Äquivalent function-- von https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith zu verwenden:

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