Эта функция проверяет, начинается ли одна текстовая строка с другой.

Описание

Функция StartsWith проверяет, начинается ли одна текстовая строка с другой. При проверке регистр не учитывается. Функция возвращает логическое значение true (истина) или false (ложь).

С помощью функции StartsWith в сочетании с функцией Filter можно искать в приложении данные. Кроме того, для поиска значений в любом месте текстовой строки (а не только в начале) можно использовать оператор in или функцию Search. Выбор функции зависит от потребностей приложения и от того, какую функцию можно делегировать для конкретного источника данных. Если какую-либо из этих функций нельзя делегировать, на этапе создания рядом с ней появится синяя точка.

Синтаксис

StartsWith(текст, начальный_текст)

  • *текст* — обязательный аргумент. Проверяемый текст.
  • начальный_текст* — обязательный аргумент. Текст, который нужно найти в начале аргумента *текст. Если начальный_текст* — пустая строка, функция StartsWith возвращает значение *true.

Примеры

Формула Описание Возвращаемый результат
StartsWith("Hello World", "hello") Проверяет, начинается ли строка "Hello World" со строки "hello". При проверке регистр не учитывается. true
StartsWith("Good bye", "hello") Проверяет, начинается ли строка "Good bye" с "hello". false
StartsWith("Always say hello", "hello") Проверяет, начинается ли строка "Always say hello" с "hello". Хотя текст "hello" есть в исходной строке, он расположен не в начале. false

Оптимизация поиска

В большинстве приложений вы можете ввести один или несколько символов в текстовом поле, чтобы отфильтровать список в большом наборе данных. При вводе в списке отображаются только те записи, которые соответствуют заданным условиям поиска.

Примеры, приведенные в остальной части статьи, — это результаты поиска в списке Customers, содержащем указанные ниже данные.

Чтобы создать этот источник данных в виде коллекции, создайте элемент управления Button (Кнопка) и задайте в качестве значения свойства OnSelect следующую формулу:

ClearCollect(Customers, Table({Name: "Fred Garcia", Company: "Northwind Traders"}, {Name: "Cole Miller", Company: "Contoso"}, {Name: "Glenda Johnson", Company: "Contoso"}, {Name: "Mike Collins", Company: "Adventure Works"}, {Name: "Colleen Jones", Company: "Adventure Works"}))

Как показано в этом примере, вы можете вывести список записей в элемент управления Gallery (Коллекция) в нижней части экрана. В верхней части экрана можно добавить элемент управления для Text input (Текстовое поле ввода) под названием SearchInput, что позволит пользователям указывать интересующие их записи.

При вводе символов в текстовом поле SearchInput результаты в коллекции автоматически фильтруются. В этом случае в коллекции будут отображаться записи, где имена клиентов (не названия компаний) начинаются с последовательности символов, указанных в текстовом поле SearchInput. Если пользователь введет в поле поиска co, в коллекции отобразятся следующие результаты:

Чтобы выполнить фильтрацию результатов по столбцу Name, задайте в качестве значения свойства Items элемента управления "Коллекция" одну из этих формул:

Формула Описание Возвращаемый результат
Filter(Customers, StartsWith(Name, SearchInput.Text)) Фильтрует источник данных Customers по записям, в которых искомая строка находится в начале столбца Name. При проверке регистр не учитывается. Если пользователь введет в поле поиска co, в коллекции отобразятся следующие результаты: Colleen Jones и Cole Miller. В этом случае значение Mike Collins не отобразится, так как в столбце Name запись не начинается с искомой строки.
Filter(Customers, SearchInput.Text in Name) Фильтрует источник данных Customers по записям, в которых искомая строка находится в любом положении в столбце Name. При проверке регистр не учитывается. Если пользователь введет в поле поиска co, в коллекции отобразятся следующие результаты: Colleen Jones, Cole Miller и Mike Collins. Это связано с тем, что записи столбца Name содержат искомую строку (в любом положении).
Search(Customers, SearchInput.Text, "Name") Как и при использовании оператора in, функция Search выполняет поиск соответствий во всех положениях записей в столбце Name. Обратите внимание, что имя столбца необходимо заключить в двойные кавычки.

Вы можете расширить область поиска, добавив столбец Company и Name.

Формула Описание Возвращаемый результат
Filter(Customers, StartsWith(Name, SearchInput.Text) || StartsWith(Company, SearchInput.Text)) Фильтрует источник данных Customers по записям, в которых записи в столбце Name или Company начинаются со строки поиска (например, co). Если функция StartsWith возвращает значение true, оператор || также возвращает значение true.
Filter(Customers, SearchInput.Text in Name || SearchInput.Text in Company) Фильтрует источник данных Customers по записям, в которых искомая строка (например, co) находится в любом положении в столбце Name или Company.
Search(Customers, SearchInput.Text, "Name", "Company") Как и при использовании оператора in, функция Search ищет в источнике данных Customers записи, в которых искомая строка (например, co) находится в любом положении в столбце Name или Company. В отличие от функции Filter, функцию Search проще записывать и читать. Это следует учитывать, если вы хотите указать несколько столбцов и операторов in. Обратите внимание, что имена столбцов необходимо заключать в двойные кавычки.