2017-05-07 2 views
-4

Ich versuche, den eingehenden Wert abzugleichen und nur alphanumerische Zeichen und null in Javascript zuzulassen. aber wenn ich/exec in der Konsole sogar treffe es wirft Fehler.Eigenschaft 'Übereinstimmung' von null kann nicht gelesen werden

var code = null; 
if(code.match(/[-[\]{}()*+?._\\^$|#]+/) || !code.match(/^[a-z0-9\0]+/){ 
    console.log('It works'); 
} 

Fehler ist hier. Kann nicht Eigentum ‚Spiel‘ von null

+4

Nun ... Sie versuchen, eine Methode auf 'null' aufzurufen. Die Fehlermeldung ist ziemlich klar, dass Sie das nicht tun können. Was ist die Frage...? Was ist Ihr Ziel Aufruf Methoden auf "null"? –

Antwort

2

Sie können nicht nennen Methoden auf null, da die Fehlermeldung sagt Ihnen lesen.

exec ist eine Methode für Objekte mit regulärem Ausdruck. Sie rufen es für einen regulären Ausdruck auf und übergeben eine Zeichenfolge, damit der Ausdruck ausgeführt werden kann. So zum Beispiel result = /[-[\]{}()*+?._\\^$|#]+/.exec(someString).

match ist eine Art der Umkehrung: Sie es an einer Schnur nennen und in einem regulären Ausdruck übergeben, und wieder wird der reguläre Ausdruck gegen die Saite läuft (etwas anders, siehe die Links für weitere Details): Zum Beispiel: result = someString.match(/[-[\]{}()*+?._\\^$|#]+/)

Beachten Sie jedoch, dass wir in beiden Fällen zwei Dinge haben: einen regulären Ausdruck und eine Zeichenfolge. null ist keines dieser Dinge. Was im Code Ihrer Frage fehlt, ist eine Zeichenfolge, mit der Sie arbeiten können.

0

Mit typeof-Code zu erkennen, ob Code nicht null und Zeichenfolge ist, und verwenden Sie \ w + alphanumerisch übereinstimmen.

var code = ... // null or string; 
if (((typeof code) === 'string')) && code.match(/\w+/)) { 
    // TODO: it works 
} 
Verwandte Themen