2016-03-31 60 views
0

我的代碼看起來像這樣得到一個錯誤,text.match錯誤時沒有結果存在

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

其工作正常,如果consearch.text值結尾「九」 不幸的是,當它不是結束「kau」我得到了1009錯誤

我錯過了什麼?不知道爲什麼它給我這個錯誤

+0

你想完成什麼?你有沒有考慮過使用String.contains(String)呢? – DodgerThud

+0

我只需要在輸入文本的END處找到短語「kau」,但是我不知道用String.contains只搜索字符串的結尾 – Koden

+0

[Give this a try](https:// github .com/as3/as3-utils/blob/master/src/utils/string/endsWith.as) – DodgerThud

回答

2

如果你不知道如何使用包然後用它這樣的,這是代碼的鏈接@DodgerThud建議的一部分,

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

我知道你有一個回答,但我會盡力解釋你爲什麼得到這個錯誤?

所以你明白我的錯誤,因爲String.match()返回如果字符串中的至少一個子串(consearch.text)指定的模式(/kau$/)相匹配的陣列ONLY否則它返回,這就是爲什麼這個錯誤當您的文本末尾不包含kau時會被解僱。

如果你想一直使用RegExp,你可以做這樣的例子:

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

希望能有所幫助。