Поделиться через


EndsWith и StartsWith функции

Применимо к: Приложения На основе холста Copilot Studio Desktop потоки формул dataverse, управляемые моделью приложений Power Platform CLI, функции Power Pages

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

Описание

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

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

Для обеих функций тесты не чувствительны к регистру, если внутренний источник данных поддерживает его по умолчанию. Например, коллекции, Dataverse, SharePoint и интенсивность обращений в службу поддержки SQL Server по умолчанию. Oracle — нет. Обе функции возвращают логическое значение true или false.

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

Синтаксис

EndsWith( Текст, EndText )

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

StartsWith( Текст, StartText )

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

Примеры

Формула Описание Результат
EndsWith( Hello World, "world" ) Проверяет, заканчивается ли строка Hello World словом world. При проверке регистр не учитывается. true
EndsWith( "Гуд bye", "хороший" ) Проверяет, заканчивается ли строка Good bye словом good. Аргумент EndText (good) есть в тексте, но не в конце строки. false
EndsWith( Всегда говорю привет, "hello" ) Проверяет, заканчивается ли строка Always say hello словом hello. true
EndsWith( "Bye bye", "" ) Проверяет, заканчивается ли текст Bye bye пустой текстовой строкой (Len возвращает значение 0). Упрощение его использования в выражениях EndsWithфильтра определяется для возврата true в данном случае. true
Формула Описание Результат
StartsWith( "Hello World", "hello" ) Проверяет, начинается ли строка "Hello World" со строки "hello". При проверке регистр не учитывается. true
StartsWith( "Гуд bye", "hello" ) Проверяет, начинается ли строка "Good bye" с "hello". false
StartsWith( Всегда говорю привет, "hello" ) Проверяет, начинается ли строка "Always say hello" с "hello". Хотя текст "hello" есть в исходной строке, он расположен не в начале. false
StartsWith( "Bye bye", "" ) Проверяет, начинается ли текст Bye bye с пустой текстовой строки (Len возвращает значение 0). Упрощение его использования в выражениях StartsWithфильтра определяется для возврата true в данном случае. true

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

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

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

Пример списка клиентов.

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

ClearCollect( Клиенты, table( { Name: "Fred Garcia", Company: "Northwind Traders" }, { Name: "Cole Miller", Company: "Contoso" }, { Name: "Glenda Johnson", Company: "Contoso" }, { Name: "Майк Коллинз", компания: "Adventure Works" }, { Name: "Colleen Jones", company: "Adventure Works" } )

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

Коллекция клиентов.

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

Коллекция клиентов с поиском.

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

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