Page 1 of 1
removing unwanted characters from a field,variable, or file
Posted: Wed Aug 03, 2011 9:36 pm
by kcwvc52
i have searched documentation and the forums and haven't found a good way to remove unwanted characters from a field. so when a button is clicked i want to remove all punctuation from the field or even better would be to keep users from being able to input non-alphanumerics into a field. does livecode have any simple code i'm missing to handle this? also i would like to note im coding for ios. i know i can choose the keyboard,but that does not keep users from typing things that are not wanted.
Re: removing unwanted characters from a field,variable, or file
Posted: Wed Aug 03, 2011 10:13 pm
by townsend
Here's a good routine you can place in the code for the field.
This prevents all numeric input AND restricts length to 12 or less.
Code: Select all
on keydown inkey
if inkey is in "1234567890" then
beep
exit to top
end if
if the length of field "someInput" <=12 then
pass keydown
else
beep
end if
end keydown
Re: removing unwanted characters from a field,variable, or file
Posted: Wed Aug 03, 2011 10:32 pm
by kcwvc52
i don't mind numbers what i'm really trying to restrict is any punctuation and unaccepted characters which with that code is fairly easy except for " cause livecode thinks i'm closing what i want in quotes. Another problem i had with this is that it won't type anything in the field? but it does beep when i typed a number of course
Re: removing unwanted characters from a field,variable, or file
Posted: Wed Aug 03, 2011 10:51 pm
by dunbarx
Townsend's script likely pointed the way for you, but to prevent the entry of all non-alphanumeric characters, you might need:
Code: Select all
on keydown inkey
if inkey is in "0123456789abcdefghijklmnopqrstuvwxyz" then
pass keydown
end if
end keydown
Check out the function "charToNum" and "numToChar". These will make you think about other ways to catch certain chars.
Code: Select all
on keydown inkey
if (chartonum(inkey) >= 65 and chartonum(inkey) <= 90) or\
(chartonum(inkey) >= 97 and chartonum(inkey) <= 122) or\
(chartonum(inkey) >= 48 and chartonum(inkey) <= 57)
then
pass keydown
end if
end keydown
The last is verbose, but has the advantage of not being run-on. Anyway, it shows another method.
Note that the delete key works here. Try this with a "rawKeyDown" handler instead of a "keyDown:
Code: Select all
on rawkeydown inkey
if inkey >= 65 and inkey <= 90 or\
inkey >= 97 and inkey <= 122 or\
inkey >= 48 and inkey <= 57
then
pass rawkeydown
end if
end rawkeydown
What's with "delete"?
Do you still need a clean-up handler to get rid of all non-alphanumeric chars in an existing field?
Is there something special about 12 characters, perhaps something pertinent to iOS?
Craig Newman
Re: removing unwanted characters from a field,variable, or file
Posted: Wed Aug 03, 2011 11:22 pm
by kcwvc52
thanks that first script does exactly what i was looking for. and on the amount of characters, i wasn't concerned with that but it is good to know now. I am still concerned with removing it from files being input into files. if anyone has a simple ways for removing it from files it would be much appreciated.
Re: removing unwanted characters from a field,variable, or file
Posted: Thu Aug 04, 2011 12:27 am
by dunbarx
So that is a "yes", you need to extract only alphaNumeric data from existing data? Easy! If you have a field "yourField":
Code: Select all
on mouseup
get fld "yourField"
put "0123456789abcdefghijklmnopqrstuvwxyz" into tAlpha
repeat for each char tChar in it
if tchar is in tAlpha then put tchar after temp
end repeat
put temp into fld "yourField"
end mouseup
You don't want spaces, right?
Craig Newman
Re: removing unwanted characters from a field,variable, or file
Posted: Thu Aug 04, 2011 3:05 am
by kcwvc52
thanks that works great. and i actually don't mind spaces but that is an easy fix just add a space at the like this "0123456789abcdefghijklmnopqrstuvwxyz " and it worked fine for me.