Code Snippet #2
For validating and enabling required control on the screen
This Power Fx code is used within a Power Apps canvas app to control the display mode of a button based on the validation of an email address entered into a text input control (named txtFriendEmail).
If(
IsMatch(
txtFriendEmail.Text,
"^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$"
) && Last(
Split(
txtFriendEmail.Text,
"@"
)
).Result in [
"gmail.com",
"outlook.com"
],
DisplayMode.Edit,
DisplayMode.Disabled
)
Explanation
IsMatch(txtFriendEmail.Text, "^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$"): - thisIsMatchfunction checks whether the text intxtFriendEmailmatches the specified regular expression. The regular expression^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$is used to validate the format of an email address. It ensures the email:- Starts with alphanumeric characters, dots, underscores, or hyphens.
- Contains an
@symbol. - Has a domain part with alphanumeric characters or hyphens followed by a period.
- Ends with a top-level domain that is 2 to 4 characters long.
-
Last(Split(txtFriendEmail.Text, "@")).Result in ["gmail.com", "outlook.com"]: - thisSplit(txtFriendEmail.Text, "@")function splits the email address at the@symbol. TheLast(...)function gets the last part of the split result, which is the domain of the email address. This part checks if the domain is eithergmail.comoroutlook.com. If(..., DisplayMode.Edit, DisplayMode.Disabled): - This is anIfstatement that sets the display mode based on the above conditions. If both conditions are true (the email is in the correct format and the domain is eithergmail.comoroutlook.com), the display mode is set toDisplayMode.Edit. If either of the conditions is false, the display mode is set toDisplayMode.Disabled, making the button disabled.
In summary, this code is used to enable or disable a button in a screen based on whether the email address entered in the txtFriendEmail text input is valid and belongs to either the gmail.com or outlook.com domains.
Happy #low-code learning
Amit Puri, Advisor and Consultant, Strengthening Digital Experiences, Modernize Cloud Journey with AI-Driven Transformation!