2016-04-11 5 views
1

Wenn die Überprüfung, dass das Zeichen nicht in Zeichenfolge ist, ist es bei der Verwendung von if(string.indexOf("x") < 0) { ... } oder if(string.indexOf("x") == -1) { ... } beide gleich?JavaScript - Suche nach einem Zeichen in Zeichenfolge mit IndexOf()

Könnte es unter bestimmten Umständen vorkommen, dass string.indexOf("x")-2 oder niedriger ist?

Vielen Dank für Ihre Erfahrungen.

+1

Nein, es wird immer '-1' wenn Sub-String nicht in der Zeichenfolge gefunden. Es gibt keine Möglichkeit, Werte unterhalb dieses Wertes zu liefern. –

+0

Die Methode indexOf() gibt die Position des ersten Vorkommens eines angegebenen Werts in einer Zeichenfolge zurück. Diese Methode gibt -1 zurück, wenn der zu suchende Wert nie auftritt. http://www.w3schools.com/jsref/jsref_indexof.asp – vaso123

Antwort

2

Könnte es einige Umstände, wenn String.IndexOf ("x") -2 wäre oder niedriger?

Nein. Es kann nicht. Der Index ist nur dann negativ (-1), wenn keine Übereinstimmung vorliegt.

Wenn dieses Zeichen Überprüfung nicht in String ist, ist es sowohl das gleiche, wenn if (String.IndexOf ("x") < 0) mit {...} oder if (String.IndexOf ("x ") == -1) {...}

Natürlich sind sie gleich, weil -1<0.

1

Es ist die gleiche:

"The indexOf() Methode, bei der dem ersten Index zurückgibt, kann ein gegebenes Element in dem Array zu finden, oder -1, wenn es nicht vorhanden ist."

MDN

2

Nach indexOf()specification, kann sie einen Wert zurückgeben: -1 (wenn nicht gefunden substring) und von 0 bis zu string.length - 1 (die die Übereinstimmungsposition).


Ein besserer Ansatz ist es, die ECMAScript 6 methodincludes() zu verwenden:

var string = 'x-files'; 

string.includes('x'); // prints true