Wie sind zwei identische Strings nicht gleich?

9

Jemand hat mir diese Email geschickt:

Warum alarmieren beide bei false?

%Vor%

Hier ist eine Demo

JSFiddle DEMO

    
qwertymk 18.01.2012, 17:53
quelle

3 Antworten

15

Ist das ein Trick? Hast du diese a's mit einer speziellen Unicode-Magie generiert? Ich löschte die a's und tippte sie neu, und jetzt zeigen beide Warnungen true , wie sie sollten

Aktualisierte Geige

    
Adam Rackis 18.01.2012, 17:55
quelle
14

Der erste a von jedem ist nicht wirklich ein einfacher a . Wenn Sie den Cursor direkt danach positionieren und die Rücktaste drücken, löschen Sie "etwas" und geben dann true zurück.

Ich habe Ihre a Zeichenkette kopiert, das erhalte ich bei der Ausführung dieses Codes:

%Vor%

Sehen Sie, was hier falsch ist? Die Stringlänge ist 4.

Darüber hinaus:

%Vor%

.. gibt zurück:

%Vor%

Bei einer einfachen Zeichenfolge mit dem Buchstaben a sollte es nur YQ== sein.

Der zusätzliche Charakter wird "ZERO WIDTH NON-JOINER" .

    
cambraca 18.01.2012 17:58
quelle
6

Für die erste 'a' Konsole sagt:

%Vor%

8204 scheint ein Unicode-Wert für Zero-width non-joiner

>

Während für das zweite sein:

%Vor%

Es ist natürlich, dass verschiedene Strings unterschiedlich sind:).

    
Li0liQ 18.01.2012 18:00
quelle

Tags und Links