Lost a line at the top:
CheckIfBinary = Function( {input},
{isbinary},
If( //If the string only contains 0 and 1 and is at least 1 character long
!Is Missing( Regex( input, "^[01]+$" ) )
, //then return 1
isbinary = 1
, //otherwise return 0
isbinary = 0
);
Return( isbinary );
);
CheckIfBinary( "123" );
CheckIfBinary( "10" );
I've avoided ChatGPT's auto complete until just now. That's interesting...it found the right regex anyway.
@LatentHyena653 - JMP's regex returns a missing value for "no match" and the text of the match otherwise. Missing value testing must be done with the isMissing function. Most other languages will have different details for using regex, so it isn't too surprising.
Also, JMP has a hex() function that will convert text to a hex string:
hexData = hex("ABC");
binaryData = substitute(hexData,
"0","0000",
"1","0001",
"2","0010",
"3","0011",
"4","0100",
"5","0101",
"6","0110",
"7","0111",
"8","1000",
"9","1001",
"A","1010",
"B","1011",
"C","1100",
"D","1101",
"E","1110",
"F","1111",
"????"
);
show(hexData,binaryData);
// hexData = "414243";
// binaryData = "010000010100001001000011";
And, as shown, substitute() can convert the hex string to a binary string.
Finally, notice that the binary string of 1s and 0s is actually a character string representation of binary data. JMP also has a blob data type if you need to work with actual binary data. But it is a lot easier to work with printable 1s and 0s.
Craige