用于flex中过滤器功能的RegExp搜索字段

时间:2009-10-15 15:44:51

标签: regex flex

我有一个数据网格和一个搜索字段。我已经设置了搜索字段的change事件来运行datagrid的filter函数。我能够匹配整个术语,但我希望能够使用正则表达式进行渐进式搜索(例如,“Pe”匹配“Peter”)。我试图创建一个正则表达式来比较字段,但我似乎无法让它工作。如何返回RegExp的结果?这是目前的功能

private function usersFilter(item:XML):Boolean {
    var searchResult:XMLList;
    var searchCheck:RegExp = /[^a-zA-Z]*/
    var searchTerm:Object = searchCheck.exec(searchInput.text);
    searchResult = item.(firstName==searchTerm.result);
    if (searchResult.length() > 0) {
           return true;
    } else {
        return false;
    }
}

1 个答案:

答案 0 :(得分:1)

我明白了!我想要做的是使用“匹配”函数,它是String对象的一种方法,可以将正则表达式作为匹配的模式。因此,为了将dataGrid中的项目与searchInput.text的case-INsensitive版本匹配,我使用了以下代码(匹配dataGrid的名字和姓氏值)

private function usersFilter(item:XML):Boolean {
    var searchResult:XMLList;
    var myTest:RegExp = new RegExp(searchInput.text,"i");
    searchResult = item.(firstName.match(myTest)||lastName.match(myTest));
    if (searchResult.length() > 0) {
        return true;
    } else {
        return false;
    }
}