#dart
#dart
Вопрос:
В angular dart у меня есть список строк, который заполнен доступными группами и строкой поиска. Я хочу найти индекс в списке, который содержит любое целое слово строки поиска. В этом примере я бы хотел, чтобы он нашел индекс 0, потому что одно из слов в строке поиска «Клиент» появляется в одной из групп. Я знаю, что приведенный ниже код не будет работать, потому что он ищет весь текст поиска.
List<String> groups = [];
groups .add('Client Information');
groups .add('User Information');
groups .add('Activity Information');
String searchtext = 'Client Customer';
return groups.indexWhere((item) => item.contains(searchtext));
Ответ №1:
Вы можете динамически создавать регулярное выражение для поиска группы слов
final regExp = RegExp('(${searchtext.replaceAll(' ', '|')})');
final index = groups.indexWhere(regExp.hasMatch);