Deciphering PowerApps Contains A Deep Dive into Text Comparison Operators

Deciphering PowerApps Contains: A Deep Dive into Text Comparison Operators

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.

About The Author