Contents

Avoid special characters in Text Input in PowerApps

 

Today’s post is about something many app makers are trying to prevent users from doing when not necessary. And that is, adding special characters in text inputs, especially when a Power Automate flow is involved in the background! 😁

Personally, I’d rather stop the issue at the source (PowerApps) than messing around with the flow(s). So, if you know that special characters are not needed, this post is for you!
 

Setting up the scene

To demonstrate how this works, we only need 3 controls on the screen. The following names are examples, map to yours!

  • Label “Project Name” –> lbl_projectName
  • Text Input –> txtInput_ProjectName
  • Button “Submit” –> btn_submit

 

/images/powerplatform-screenshots/avoid-special-characters-in-text-input-img1.png
 

Formula and placement

To make sure special characters are not included in the text string, we’re going to use the IsMatch() function. And as we’re also going to play around with the DisplayMode property of the button, we’ll use a condition with a simple if() statement.
 

1.) Let’s enter the following formula in the OnChange property of the txtInput_ProjectName:

1
IsMatch(txtInput_ProjectName.Text,".*[\\\"&Char(34)&"/<>!@#$%^&*()'].*")

 

/images/powerplatform-screenshots/avoid-special-characters-in-text-input-img2.png
 

This will in turn, allow to detect the special character(s) when moving away from the control, or even while typing.
 

2.) Now we’ll change the DisplayMode for the button to disabled if the user entered any of the special characters we specified. Select the btn_submit control, and in the DisplayMode property, enter the following:

1
If(IsMatch(txtInput_ProjectName.Text,".*[\\\"&Char(34)&"/<>!@#$%^&*()'].*"), DisplayMode.Disabled, DisplayMode.Edit)

 

/images/powerplatform-screenshots/avoid-special-characters-in-text-input-img3.png
 

Testing!

Now play the app, and try it out!

As soon as you enter a special character, the submit button will be disabled.
 

/images/powerplatform-screenshots/avoid-special-characters-in-text-input-img4.png
 

/images/powerplatform-screenshots/avoid-special-characters-in-text-input-img5.png
 

If you wish to also make the borders in red to show the user exactly where the problem is, simply insert the formula in the BorderColor property of the txtInput_ProjectName as follows: If(IsMatch(txtInput_ProjectName.Text,".*[\\\"&Char(34)&"/<>!@#$%^&*()'].*"), Color.DarkRed, RGBA(0, 18, 107, 1))

 

Thanks for reading! 🙂