Introduction: String manipulation in PowerApps sometimes leads to uncertainty, especially when we’re discussing operators like BeginsWith
, EndsWith
, and notably, Contains
. As developers seek to understand text comparison nuances, this guide shines a light on the expected behavior and correct syntax. If you face any technical challenges or require further clarity, don’t hesitate to contact our experts.
The formula bar’s code completion suggestions, courtesy of IntelliSense, can occasionally lead developers astray. Specifically, the workings of string comparison functions, such as contains
and begins with
, often generate questions.
Consider a data entry form where one captures issues. If the issue description includes the term ‘child’, a warning is required, prompting users to initiate a risk assessment. This feature aims to protect vulnerable individuals. An app developer might proceed to add a warning label, intending to set its visibility through a formula. As they draft an ‘If’ condition, the Contains
keyword pops up as a suggestion. It appears fitting, but attempts to implement it usually fall short. This puzzling scenario isn’t exclusive to Contains
; it extends to BeginsWith
too.
Understanding the Contains and BeginsWith Predicament
The mystery behind the inconsistent behavior of Contains
and EndsWith
stems from a simple fact: they aren’t operators but enumeration values, specifically for the IsMatch
function. PowerApps official documentation does delve into these keywords: PowerApps IsMatch Function.
A common misconception is considering EndsWith
only as a MatchOptions enumeration value, when, in fact, it’s a valid function too.
Employing Contains and BeginsWith Correctly
To harness the Contains
and BeginsWith
operators effectively, they must pair with the IsMatch
function:
// Verifies if the text input control features "child" IsMatch(txtInputDescription.Text, "child", MatchOptions.Contains) // Asserts if the text input control starts with "child" IsMatch(txtInputDescription.Text, "child", MatchOptions.BeginsWith) // Checks if the text input control concludes with "child" IsMatch(txtInputDescription.Text, "child", MatchOptions.EndsWith)
Remember, by default, matching is case-sensitive. For case-insensitive checks, combine with the IgnoreCase
option using the & operator:
IsMatch(txtInputDescription.Text, "child", MatchOptions.Contains & MatchOptions.IgnoreCase) IsMatch(txtInputDescription.Text, "child", MatchOptions.BeginsWith & MatchOptions.IgnoreCase) IsMatch(txtInputDescription.Text, "child", MatchOptions.EndsWith & MatchOptions.IgnoreCase)
Alternative Formulas for Text Comparisons
For developers seeking other methods to perform these operations, PowerApps also offers the ‘in’, StartsWith
, and EndsWith
functions:
("child" in txtInputDescription.Text) StartsWith(txtInputDescription.Text, "child") EndsWith(txtInputDescription.Text, "child")
Conclusion: Text comparison in PowerApps, though robust, can be intricate. It’s essential to grasp that ‘contains’ isn’t a standalone function. The right approach to check if a text segment starts with a designated value is to utilize StartsWith
, not BeginsWith
. As you navigate the vast realm of PowerApps, should you ever require guidance or face challenges, remember that our experts at SoftwareZone365 are just a click away and ready to assist.