2016-07-18 5 views
0

Ich brauche Alpha-Zeichen bestätigen (in einem Antrag, node.js) und dem, was ich früher war:Warum diese Javascript RegExp True zurückgibt?

/[a-zA-Z]+/.test(input) 

ABER, wenn ein Wert null übergeben wurde, wurde dann auf OK bestätigt (regexp TRUE) Beispiel :

/[a-zA-Z]+/.test(null) // <--- this returns true :(

Jemand kann mir das erklären? Ich muss Nullen vermeiden, danke!

+4

es ist Testen "" null "', nicht "null" – dandavis

+0

nein, ich habe null getestet, nicht "null", bitte verwenden Sie die Chrome-Konsole und geben Sie Folgendes ein: /[a-zA-Z] + /. Test (null) – mzalazar

+1

nein, du hast "null" getestet; js konvertiert es in einen String für die test() -Methode ... – dandavis

Antwort

5

Die test() Methode führt eine Suche nach einer Übereinstimmung zwischen einem normalen Ausdruck und einer bestimmten Zeichenfolge. Returns wahr oder falsch

RegExp.prototype.test() wandelt Parameter übergeben an einen String

Zum Beispiel /\d/.test(0) würde auch true zurückkehren, wie erwartet, wo 0 ist ein Number als Parameter übergeben.

+0

Ohh mein Gott, vielen Dank !! :) das hilft viel: D – mzalazar

2

Da .test() den Parameter in eine Zeichenfolge verwandelt, testen Sie effektiv mit 'null' - was zu 'wahr' führt.

Verwandte Themen