我最近一直在尝试验证用户输入,以便只接受来自字母表的字母,我该怎么做?我知道如何验证大多数事情的用户输入,但是这一行代码确实令我感到不安。
答案 0 :(得分:0)
您可以使用此功能检查字段的内容:
function validate theString
return matchText(theString,"^[a-zA-Z]+$")
end validate
^[a-zA-Z]+$
是正则表达式。 ^
表示字符串的开头,括号等于一个char,括号内的表达式确定一组字符。 +
表示所有后续字符必须等于前一个(一组)字符。 $
表示字符串的结尾。换句话说,根据这个表达式,所有字符必须是集合a,包括z或A直到并包括Z.
matchText()
是一个LiveCode函数,它检查第一个参数中的字符串是否与第二个参数中的正则表达式匹配。将validate()
函数放在卡片或堆栈级别的某个位置,并从rawKeyUp
处理程序中的字段调用它:
on rawKeyUp
if not validate(the text of me) then
beep
answer "Sorry, that's wrong"
end if
end rawKeyUp
你也可以提前检查:
on keyDown theKey
if validate(theKey) then
pass keyDown
end if
end keyDown
这种方法略显冗长。您还可以将matchText
函数放在字段的keyDown
处理程序中。