Функции EndsWith и StartsWith в PowerAppsEndsWith and StartsWith functions in PowerApps

Эти функции проверяют, есть ли в начале или в конце одной текстовой строки другая текстовая строка.Tests whether a text string begins or ends another text string.

ОписаниеDescription

Функция EndsWith проверяет, заканчивается ли одна текстовая строка другой.The EndsWith function tests whether one text string ends with another.

Функция StartsWith проверяет, начинается ли одна текстовая строка с другой.The StartsWith function tests whether one text string begins with another.

При проверке для обеих функций регистр не учитывается.For both functions, the tests are case insensitive. Обе функции возвращают логическое значение true или false.The return value of both is a Boolean true or false.

С помощью функций EndsWith и StartsWith в сочетании с функцией Filter можно искать данные в приложении.Use EndsWith and StartsWith with the Filter function to search the data within your app. Кроме того, для поиска значений в любом месте текстовых строк (а не только в начале или конце) можно использовать оператор in или функцию Search.You can also use the in operator or the Search function to look anywhere within text strings, not just at the beginning or end. Выбор функции зависит от потребностей приложения и от того, какую функцию можно делегировать для конкретного источника данных.Your choice of functions will depend on the needs of your app and which function can be delegated for your particular data source. Если какую-либо из этих функций нельзя делегировать, на этапе создания рядом с ней появится синяя точка.If one of these functions can't be delegated, a blue dot will appear at authoring time to warn you of this limitation.

СинтаксисSyntax

EndsWith( Text, EndText )EndsWith( Text, EndText )

  • Текст — требуется.Text – Required. Проверяемый текст.The text to test.
  • EndText — обязательный аргумент.EndText – Required. Текст, который нужно найти в конце аргумента Text.The text to search for at the end of Text. Если EndText является пустой строкой, функция EndsWith возвращает значение true.If EndText is an empty string, EndsWith returns true.

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

  • текст — обязательный аргумент.Text – Required. Проверяемый текст.The text to test.
  • начальный_текст — обязательный аргумент.StartText – Required. Текст, который нужно найти в начале аргумента текст.The text to search for at the beginning of Text. Если начальный_текст — пустая строка, функция StartsWith возвращает значение true.If StartText is an empty string, StartsWith returns true.

ПримерыExamples

ФормулаFormula ОписаниеDescription Возвращаемый результатResult
EndsWith( "Hello World", "world" )EndsWith( "Hello World", "world" ) Проверяет, заканчивается ли строка Hello World словом world.Tests whether "Hello World" ends with "world". При проверке регистр не учитывается.The test is case insensitive. truetrue
EndsWith( "Good bye", "good" )EndsWith( "Good bye", "good" ) Проверяет, заканчивается ли строка Good bye словом good.Tests whether "Good bye" ends with "good". Аргумент EndText (good) есть в тексте, но не в конце строки.The EndText argument ("good") appears in the text but not at the end. falsefalse
EndsWith( "Always say hello", "hello" )EndsWith( "Always say hello", "hello" ) Проверяет, заканчивается ли строка Always say hello словом hello.Tests whether "Always say hello" ends with "hello". truetrue
Endswith( "Bye bye", "" )Endswith( "Bye bye", "" ) Проверяет, заканчивается ли текст Bye bye пустой текстовой строкой (Len возвращает значение 0).Tests whether "Bye bye" ends with an empty text string (Len returns 0). В этом случае для функции EndsWith определен возврат значения true, что упрощает ее использование в выражениях Filter.Easing its use in Filter expressions, EndsWith is defined to return true in this case. truetrue
ФормулаFormula ОписаниеDescription Возвращаемый результатResult
StartsWith("Hello World", "hello")StartsWith( "Hello World", "hello" ) Проверяет, начинается ли строка "Hello World" со строки "hello".Tests whether "Hello World" begins with "hello". При проверке регистр не учитывается.The test is case insensitive. truetrue
StartsWith("Good bye", "hello")StartsWith( "Good bye", "hello" ) Проверяет, начинается ли строка "Good bye" с "hello".Tests whether "Good bye" begins with "hello". falsefalse
StartsWith("Always say hello", "hello")StartsWith( "Always say hello", "hello" ) Проверяет, начинается ли строка "Always say hello" с "hello".Tests whether "Always say hello" begins with "hello". Хотя текст "hello" есть в исходной строке, он расположен не в начале.Although "hello" appears in the text, it doesn't appear at the beginning. falsefalse
StartsWith( "Bye bye", "" )StartsWith( "Bye bye", "" ) Проверяет, начинается ли текст Bye bye с пустой текстовой строки (Len возвращает значение 0).Tests whether "Bye bye" starts with an empty text string (Len returns 0). В этом случае для функции StartsWith определен возврат значения true, что упрощает ее использование в выражениях Filter.Easing its use in Filter expressions, StartsWith is defined to return true in this case. truetrue

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

В большинстве приложений вы можете ввести один или несколько символов в текстовом поле, чтобы отфильтровать список в большом наборе данных.In many apps, you can type one or more characters into a search box to filter a list of records in a large data set. При вводе в списке отображаются только те записи, которые соответствуют заданным условиям поиска.As you type, the list shows only those records that match the search criteria.

Примеры, приведенные в остальной части статьи, — это результаты поиска в списке Customers, содержащем указанные ниже данные.The examples in the rest of this topic show the results of searching a Customers list that contains this data:

Чтобы создать этот источник данных в виде коллекции, создайте элемент управления Button (Кнопка) и задайте в качестве значения свойства OnSelect следующую формулу:To create this data source as a collection, create a Button control and set its OnSelect property to this formula:

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"}))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 (Коллекция) в нижней части экрана.As in this example, you can show a list of records in a Gallery control at the bottom of a screen. В верхней части экрана можно добавить элемент управления для Text input (Текстовое поле ввода) под названием SearchInput, что позволит пользователям указывать интересующие их записи.Near the top of the screen, you can add a Text input control, named SearchInput, so that users can specify which records interest them.

При вводе символов в текстовом поле SearchInput результаты в коллекции автоматически фильтруются.As the user types characters in SearchInput, the results in the gallery are automatically filtered. В этом случае в коллекции будут отображаться записи, где имена клиентов (не названия компаний) начинаются с последовательности символов, указанных в текстовом поле SearchInput. Если пользователь введет в поле поиска co, в коллекции отобразятся следующие результаты:In this case, the gallery is configured to show records for which the name of the customer (not the name of the company) starts with the sequence of characters in SearchInput.If the user types co in the search box, the gallery shows these results:

Чтобы выполнить фильтрацию результатов по столбцу Name, задайте в качестве значения свойства Items элемента управления "Коллекция" одну из этих формул:To filter based on the Name column, set the Items property of the gallery control to one of these formulas:

ФормулаFormula ОписаниеDescription Возвращаемый результатResult
Filter(Customers, StartsWith(Name, SearchInput.Text))Filter( Customers, StartsWith( Name, SearchInput.Text ) ) Фильтрует источник данных Customers по записям, в которых искомая строка находится в начале столбца Name.Filters the Customers data source for records in which the search string appears at the start of the Name column. При проверке регистр не учитывается.The test is case insensitive. Если пользователь введет в поле поиска co, в коллекции отобразятся следующие результаты: Colleen Jones и Cole Miller.If the user types co in the search box, the gallery shows Colleen Jones and Cole Miller. В этом случае значение Mike Collins не отобразится, так как в столбце Name запись не начинается с искомой строки.The gallery doesn't show Mike Collins because the Name column for that record doesn't start with the search string.
Filter(Customers, SearchInput.Text in Name)Filter( Customers, SearchInput.Text in Name ) Фильтрует источник данных Customers по записям, в которых искомая строка находится в любом положении в столбце Name.Filters the Customers data source for records in which the search string appears anywhere in the Name column. При проверке регистр не учитывается.The test is case insensitive. Если пользователь введет в поле поиска co, в коллекции отобразятся следующие результаты: Colleen Jones, Cole Miller и Mike Collins. Это связано с тем, что записи столбца Name содержат искомую строку (в любом положении).If the user types co in the search box, the gallery shows Colleen Jones, Cole Miller, and Mike Collins because the search string appears somewhere in the Name column of all of those records.
Search(Customers, SearchInput.Text, "Name")Search( Customers, SearchInput.Text, "Name" ) Как и при использовании оператора in, функция Search выполняет поиск соответствий во всех положениях записей в столбце Name.Similar to using the in operator, the Search function searches for a match anywhere within the Name column of each record. Обратите внимание, что имя столбца необходимо заключить в двойные кавычки.Note that you must enclose the column name in double quotation marks.

Вы можете расширить область поиска, добавив столбец Company и Name.You can expand your search to include the Company column as well as the Name column:

ФормулаFormula ОписаниеDescription Возвращаемый результатResult
Filter(Customers, StartsWith(Name, SearchInput.Text) || StartsWith(Company, SearchInput.Text))Filter( Customers, StartsWith( Name, SearchInput.Text ) || StartsWith( Company, SearchInput.Text ) ) Фильтрует источник данных Customers по записям, в которых записи в столбце Name или Company начинаются со строки поиска (например, co).Filters the Customers data source for records in which either the Name column or the Company column starts with the search string (for example, co). Если функция StartsWith возвращает значение true, оператор || также возвращает значение true.The || operator is true if either StartsWith function is true.
Filter(Customers, SearchInput.Text in Name || SearchInput.Text in Company)Filter( Customers, SearchInput.Text in Name || SearchInput.Text in Company ) Фильтрует источник данных Customers по записям, в которых искомая строка (например, co) находится в любом положении в столбце Name или Company.Filters the Customers data source for records in which either the Name column or the Company column contains the search string (for example, co) anywhere within it.
Search(Customers, SearchInput.Text, "Name", "Company")Search( Customers, SearchInput.Text, "Name", "Company" ) Как и при использовании оператора in, функция Search ищет в источнике данных Customers записи, в которых искомая строка (например, co) находится в любом положении в столбце Name или Company.Similar to using the in operator, the Search function searches the Customers data source for records in which either the Name column or the Company column contains the search string (for example, co) anywhere within it. В отличие от функции Filter, функцию Search проще записывать и читать. Это следует учитывать, если вы хотите указать несколько столбцов и операторов in.The Search function is easier to read and write than Filter if you want to specify multiple columns and multiple in operators. Обратите внимание, что имена столбцов необходимо заключать в двойные кавычки.Note that you must enclose the names of the columns in double quotation marks.