EndsWith 和 StartsWith 函式
適用於: 畫布應用程式 桌面流程 Dataverse 公式欄 模型導向應用程式 Power Pages Power Platform CLI
測試某個文字字串的開頭或結尾是否為另一個文字字串。
描述
EndsWith 函式會測試某個文字字串的結尾是否為另一個文字字串。
StartsWith 函式會測試某個文字字串的開頭是否為另一個文字字串。
對於這兩個函數,如果後端資料來源預設支援,則測試不區分大小寫。 例如,集合、Dataverse、SharePoint 和 SQL Server 預設支援不區分大小寫。 Oracle 則不支援。 兩者的傳回值都是布林值 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)。 在 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 控制項 中顯示記錄清單。 在靠近畫面頂端的地方,您可以新增名為 SearchInput 的 Text input 控制項,讓使用者可以指定其感興趣的記錄。
當使用者在 SearchInput 中輸入字元時,資源庫中的結果會自動經過篩選。 在此案例中,資源庫會設定為顯示客戶名稱 (而非公司名稱) 開頭為 SearchInput 中字元序列的記錄。如果使用者在搜尋方塊中輸入 co,資源庫會顯示下列結果︰
若要根據 名稱 欄位進行篩選,請將資源庫控制項的 Items 屬性設定為下列其中一個公式︰
公式 | 描述 | 結果 |
---|---|---|
Filter( Customers, StartsWith( Name, SearchInput.Text ) ) | 篩選 客戶 資料來源中,Name 欄位開頭出現此搜尋字串的記錄。 此測試不區分大小寫。 如果使用者在搜尋方塊中輸入 co,資源庫會顯示 Colleen Jones 和 Cole Miller。 資源庫不會顯示 Mike Collins,因為該筆記錄的 Name 欄位開頭不是此搜尋字串。 | |
Filter( Customers, SearchInput.Text in Name ) | 篩選 客戶 資料來源中,Name 欄位任意處出現此搜尋字串的記錄。 此測試不區分大小寫。 如果使用者在搜尋方塊中輸入 co,資源庫會顯示 Colleen Jones、Cole Miller 和 Mike Collins,因為這些記錄的 Name 欄位某處皆出現此搜尋字串。 | |
Search( Customers, SearchInput.Text, "Name" ) | 類似於使用 in 運算子,Search 函式會搜尋每一筆記錄的 Name 欄位內任意處是否有相符項目。 請注意,您必須以雙引號括住欄位名稱。 |
您可以擴大搜尋,將 Company 欄位及 Name 欄位納入其中︰
公式 | 描述 | 結果 |
---|---|---|
Filter( 客戶, StartsWith( 姓名, SearchInput.Text ) || StartsWith( 公司, SearchInput.Text ) ) | 篩選 客戶 資料來源中,Name 欄位或 Company 資料來源欄位開頭為此搜尋字串 (例如,co) 的記錄。 若任一 StartsWith 函式為 true,則 ||運算子 為 true。 | |
篩選 (客戶,名稱中的 SearchInput.Text || 公司中的SearchInput.Text) | 篩選 客戶 資料來源中,Name 欄位或 Company 欄位內的任意處包含此搜尋字串 (例如,co) 的記錄。 | |
Search( Customers, SearchInput.Text, "Name", "Company" ) | 類似於使用 in 運算子,Search 函式會搜尋 客戶 資料來源中,Name 欄位或 Company 欄位內的任意處包含此搜尋字串 (例如,co) 的記錄。 如果您想要指定多個欄位和多個 in 運算子,Search 函式會比 Filter 更容易理解和撰寫。 請注意,您必須以雙引號括住欄位名稱。 |