Gibt es einen Grund, warum eine JS-Zeichenkette nicht gleich ist? (siehe Foto)

8

Gibt es irgendeinen Grund, warum eine Saite sich nicht selbst gleicht? Ich verarbeite eine große Anzahl von Strings und einige Strings sind am Ende nicht gleich.

Hier ist ein Bild, das zeigt, worüber ich rede.

Irgendwelche Ideen?

BEHOBEN: Am Ende einer der Zeichenfolgen befindet sich ein Wagenrücklauf (\ r). Ich verwendete String.length, um die Längen jeder Saite zu sehen, und sie unterschieden sich (5 und 6). Ich schaute dann mit String.charAt durch die Zeichenfolge. In Chrome zeigte dies eine leere Zeichenfolge (""). Die leere Zeichenfolge war jedoch kein falscher Wert. Ich habe das in FireFox versucht und es zeigte den Wagenrücklauf.

    
H Khan 09.07.2013, 17:18
quelle

3 Antworten

10

In jeder Sprache, wenn eine Zeichenfolge einige nicht lesbare Zeichen enthält, und die andere nicht, werden sie unterschiedlich sein, selbst wenn sie von Menschen gleich zu sein scheinen.

Versuchen Sie, ihre Längen zu drucken und sie char-to-char

zu drucken     
RiaD 09.07.2013, 17:21
quelle
3

Es könnte sein, dass eines der Zeichen eine UTF-8-Darstellung des Ascii-Äquivalents ist.

Hier ist ein Transliterations-jquery-Plugin: Ссылка

Es könnte auch eine Kontrollsequenz am Ende geben, wie eine Stückliste.

    
Joe Frambach 09.07.2013 17:21
quelle
-1

Wahrscheinlich vergleichen Sie einen String-Werttyp mit einer Zeichenfolge.

Siehe Unterschied zwischen dem JavaScript-String-Typ und dem String-Objekt?

Lösung: Verwenden Sie entweder string.valueOf () oder verwenden Sie double equals statt triple und lassen Sie Javascript das String-Objekt auf einen String-Wert zwingen.

Von meiner Konsole aus     a = neuer String ("asdf");     b="asdf";     a === b; // falsch     a == b; // wahr     a.valueOf () === b.valueOf (); // wahr

    
Lee Avital 09.07.2013 17:23
quelle

Tags und Links