#define VALIDCHARACTERS "0123456789.+-" lcX = "1234.456" ? lcX == chrtran( lcX, chrtran( lcX, VALIDCHARACTERS, "" ), "" ) && .T. lcX = "1234e456" ? lcX == chrtran( lcX, chrtran( lcX, VALIDCHARACTERS, "" ), "" ) && .f.this way you don't need to upper() or lower() or include all possible bad characters to look for in your strings. I think in your case it's much easier to define the characters that are considered ok.