我有一个数据网格和一个搜索字段。我已经设置了搜索字段的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;
}
}
答案 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;
}
}