2016-03-31 8 views
0

existiere ich Code, dererhalte eine Fehlermeldung, text.match Fehler, wenn keine Ergebnisse

if (consearch.text.match(/kau$/).length >= 0) 
{ 
trace("test"); 
} 

sieht wie folgt aus, der gut arbeitet, wenn consearch.text Wert endet mit „kau“ leider, wenn es nicht mit endet "kau" Ich bekomme einen 1009 Fehler

Fehle ich etwas ?? Nicht sicher, warum seine mir diesen Fehler geben

+0

Was möchten Sie erreichen? Haben Sie stattdessen die Verwendung von String.contains (String) in Betracht gezogen? – DodgerThud

+0

Ich muss den Ausdruck "kau" nur am Ende des Eingabetextes finden, ich weiß sowieso nicht, dass nur nach dem Ende des Strings mit String gesucht wird.contains – Koden

+0

[Probieren Sie es] (https: // github .com/as3/as3-utils/blob/master/src/utils/string/endsWith.as) – DodgerThud

Antwort

2

Wenn Sie nicht wissen, wie Paketen zu benutzen und dann wie folgt verwenden es, dieser Teil des Code-Link ist @DodgerThud schon sagt,

function endsWith(input:String, suffix:String):Boolean { 
    return (suffix == input.substring(input.length - suffix.length)); 
} 
if (endsWith(consearch.text,"kau")) 
{ 
    trace("test"); 
} 
1

Ich weiß, dass Sie ein bekam antworte, aber ich werde versuchen zu erklären, warum du diesen Fehler bekommen hast?

Also haben Sie diesen Fehler, weil String.match() ein Array NUR zurückgibt, wenn es mindestens eine Teilkette in der Zeichenkette (consearch.text), das entspricht dem angegebenen Muster (/kau$/) Rück es sonst null, und das ist, warum dieser Fehler wird ausgelöst, wenn Ihr Text kau an seinem Ende nicht enthält.

Wenn Sie wollen immer RegExp verwenden, können Sie es wie folgt zum Beispiel tun:

if (/kau$/.test(consearch.text)) 
{ 
    trace('test'); 
} 

Hoffnung, die helfen können.

Verwandte Themen