2016-03-31 62 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'); 
} 

希望能有所帮助。