EndsWith 和 StartsWith 函式

適用於: 畫布應用程式 桌面流程 Dataverse 公式欄 模型導向應用程式 Power Platform CLI

測試某個文字字串的開頭或結尾是否為另一個文字字串。

描述

EndsWith 函式會測試某個文字字串的結尾是否為另一個文字字串。

StartsWith 函式會測試某個文字字串的開頭是否為另一個文字字串。

對於這兩個函式,測試不區分大小寫。 兩者的傳回值都是布林值 truefalse

使用 EndsWithStartsWith 搭配 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)。 在 Filter 運算式中更好使用,此情況下 EndsWith 定義會傳回 true 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)。 在 Filter 運算式中更好使用,此情況下 StartsWith 定義會傳回 true true

搜尋使用者體驗

在許多應用程式中,您可以在搜尋方塊中輸入一或多個字元,以篩選大型資料集內的記錄清單。 當您輸入時,此清單只會顯示符合搜尋條件的記錄。

本主題其餘部分的範例會顯示搜尋 客戶清單的結果,該清單中包含此資料︰

客戶清單範例。

若要將此資料來源建立為集合,請建立 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 控制項 中顯示記錄清單。 在靠近畫面頂端的地方,您可以新增名為 SearchInputText input 控制項,讓使用者可以指定其感興趣的記錄。

客戶資源庫。

當使用者在 SearchInput 中輸入字元時,資源庫中的結果會自動經過篩選。 在此案例中,資源庫會設定為顯示客戶名稱 (而非公司名稱) 開頭為 SearchInput 中字元序列的記錄。如果使用者在搜尋方塊中輸入 co,資源庫會顯示下列結果︰

具有搜尋功能的客戶資源庫。

若要根據 名稱 欄位進行篩選,請將資源庫控制項的 Items 屬性設定為下列其中一個公式︰

公式 描述 結果
Filter( Customers, StartsWith( Name, SearchInput.Text ) ) 篩選 客戶 資料來源中,Name 欄位開頭出現此搜尋字串的記錄。 此測試不區分大小寫。 如果使用者在搜尋方塊中輸入 co,資源庫會顯示 Colleen JonesCole Miller。 資源庫不會顯示 Mike Collins,因為該筆記錄的 Name 欄位開頭不是此搜尋字串。 StartsWith 範例。
Filter( Customers, SearchInput.Text in Name ) 篩選 客戶 資料來源中,Name 欄位任意處出現此搜尋字串的記錄。 此測試不區分大小寫。 如果使用者在搜尋方塊中輸入 co,資源庫會顯示 Colleen JonesCole MillerMike 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 ) ) 篩選 客戶 資料來源中,Name 欄位或 Company 資料來源欄位開頭為此搜尋字串 (例如,co) 的記錄。 若任一 StartsWith 函式為 true,則 ||運算子true 使用 StartsWith 篩選。
Filter( Customers, SearchInput.Text in Name || SearchInput.Text in Company ) 篩選 客戶 資料來源中,Name 欄位或 Company 欄位內的任意處包含此搜尋字串 (例如,co) 的記錄。 使用名稱中的搜尋文字篩選。
Search( Customers, SearchInput.Text, "Name", "Company" ) 類似於使用 in 運算子,Search 函式會搜尋 客戶 資料來源中,Name 欄位或 Company 欄位內的任意處包含此搜尋字串 (例如,co) 的記錄。 如果您想要指定多個欄位和多個 in 運算子,Search 函式會比 Filter 更容易理解和撰寫。 請注意,您必須以雙引號括住欄位名稱。 使用名稱、公司中的搜尋文字篩選。