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

說明

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

搜尋使用者體驗

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

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

若要將此資料來源建立為集合,請建立按鈕控制項,並將其 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" } ) )

和此範例一樣,您可以在畫面底部的資源庫控制項中顯示記錄清單。 在靠近畫面頂端的地方,您可以新增名為 SearchInput文字輸入控制項,讓使用者可以指定其感興趣的記錄。

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

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

公式 說明 結果
Filter( Customers, StartsWith( Name, SearchInput.Text ) ) 篩選客戶資料來源中,名稱資料行開頭出現此搜尋字串的記錄。 此測試不區分大小寫。 如果使用者在搜尋方塊中輸入 co,資源庫會顯示 Colleen JonesCole Miller。 資源庫不會顯示 Mike Collins,因為該筆記錄的名稱資料行開頭不是此搜尋字串。
Filter( Customers, SearchInput.Text in Name ) 篩選客戶資料來源中,名稱資料行任意處出現此搜尋字串的記錄。 此測試不區分大小寫。 如果使用者在搜尋方塊中輸入 co,資源庫會顯示 Colleen JonesCole MillerMike Collins,因為這些記錄的名稱資料行某處皆出現此搜尋字串。
Search( Customers, SearchInput.Text, "Name" ) 類似於使用 in 運算子,Search 函式會搜尋每一筆記錄的名稱資料行內任意處是否有相符項目。 請注意,您必須以雙引號括住資料行名稱。

您可以擴大搜尋,將公司資料行以及名稱資料行納入其中︰

公式 說明 結果
Filter( Customers, StartsWith( Name, SearchInput.Text ) || StartsWith( Company, SearchInput.Text ) ) 篩選客戶資料來源中,名稱資料行或公司資料行開頭為此搜尋字串 (例如,co) 的記錄。 若任一 StartsWith 函式為 *true*,則 || 運算子為 *true*。
Filter( Customers, SearchInput.Text in Name || SearchInput.Text in Company ) 篩選客戶資料來源中,名稱資料行或公司資料行內的任意處包含此搜尋字串 (例如,co) 的記錄。
Search( Customers, SearchInput.Text, "Name", "Company" ) 類似於使用 in 運算子,Search 函式會搜尋客戶資料來源中,名稱資料行或公司資料行內的任意處包含此搜尋字串 (例如,co) 的記錄。 如果您想要指定多個資料行和多個 in 運算子,Search 函式會比 Filter 更容易理解和撰寫。 請注意,您必須以雙引號括住資料行名稱。