Функции EndsWith и StartsWith

Применимо к: приложениям на основе холста классическим потокам столбцам формул Dataverse приложениям на основе модели интерфейсу командной строки Power Platform

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

Описание

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

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

При проверке для обеих функций регистр не учитывается. Обе функции возвращают логическое значение true или false.

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

Синтаксис

EndsWith( Text, EndText )

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

StartsWith( Text, StartText )

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

Примеры

Формула Описание Результат
EndsWith( "Hello World", "world" ) Проверяет, заканчивается ли строка Hello World словом world. При проверке регистр не учитывается. true
EndsWith( "Good bye", "good" ) Проверяет, заканчивается ли строка Good bye словом good. Аргумент EndText (good) есть в тексте, но не в конце строки. false
EndsWith( "Always say hello", "hello" ) Проверяет, заканчивается ли строка Always say hello словом hello. true
EndsWith( "Bye bye", "" ) Проверяет, заканчивается ли текст Bye bye пустой текстовой строкой (Len возвращает значение 0). В этом случае для функции EndsWith определен возврат значения true, что упрощает ее использование в выражениях Filter. 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
StartsWith( "Bye bye", "" ) Проверяет, начинается ли текст Bye bye с пустой текстовой строки (Len возвращает значение 0). В этом случае для функции StartsWith определен возврат значения true, что упрощает ее использование в выражениях Filter. true

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

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

Примеры, приведенные в остальной части статьи, — это результаты поиска в списке 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 элемента управления Gallery одну из этих формул:

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

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

Формула Описание Результат
Filter( Customers, StartsWith( Name, SearchInput.Text ) || StartsWith( Company, SearchInput.Text ) ) Фильтрует источник данных Customers по записям, в которых записи в столбце Name или Company начинаются со строки поиска (например, co). Если функция StartsWith возвращает значение true, оператор || также возвращает значение true. Фильтрация с StartsWith.
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. Обратите внимание, что имена столбцов необходимо заключать в двойные кавычки. Фильтр с текстом поиска в имени, компании.