# Logic App/ Flow checking if something is a number

Update: The steps in this post don’t entirely work as it is missing something as I realized later. Rather than update this post I’d like to point visitors to this post where I found out what I was missing. I am lazy that way. :)

I have a bit of code in one of my Flows that would check if a certain bit of text is all numbers or not. Basically it was part of a Flow wherein I’d take a mobile number input and I expect it to be in an E.164 format: `+[code][digits]`. I don’t validate the number of digits (has to be less than 15 including the code I think) but I do strip it off spaces, dashes, brackets etc. and then I remove the + sign and want to validate if what remains is actually a number.

This is the bit in the `Extract` section: `if(greaterOrEquals(int(substring(variables('MobileNumber'), 1, sub(length(variables('MobileNumber')), 1))), 0), 'Int', 'Str')`

Here’s what I do:

First I use `substring`.  This extracts a part of the string. Specifically, I want to remove the + sign (I know it is there as I validate that earlier in the Flow). So I want to extract everything after the first character up to the length of the string minus 1 (coz that what remains after the first character). That’s what this bit does: `substring(variables('MobileNumber'), 1, sub(length(variables('MobileNumber')), 1))`

Then I convert that to an integer `using the int() function`. This is `int(substring(variables('MobileNumber'), 1, sub(length(variables('MobileNumber')), 1)))`.

Then I check if this is greater than or equal to 0. This is my way of checking if the output of int() was actually an integer or not. I couldn’t think of any other way. Thus I do `greaterOrEquals(int(substring(variables('MobileNumber'), 1, sub(length(variables('MobileNumber')), 1))), 0)`.

Finally I say if the previous check was try then output a string ‘Int’ else output ‘Str’. I can then check this in the following `If` clause to determine if the text is a number of not.

Here’s how I remove all invalid characters earlier btw. First I define an array of the characters.

Then I loop over this and do a replace.

In the `Compose` section I am doing `replace(variables('MobileNumber'), items('FixMobile'), '')`. `items('FixMobile')` refers to the current item in the loop, so essentially I am doing a replace of the `MobileNumber` variable for each item and then assigning it back to `MobileNumber` in `Set variable`.

That’s it!