【发布时间】:2014-03-04 11:36:16
【问题描述】:
我在 LiveCode 中有一个收集客户详细信息的表单。其中一个字段是他们的电话号码。如何阻止他们输入有效电话号码字符以外的任何内容?
【问题讨论】:
标签: livecode
我在 LiveCode 中有一个收集客户详细信息的表单。其中一个字段是他们的电话号码。如何阻止他们输入有效电话号码字符以外的任何内容?
【问题讨论】:
标签: livecode
上面尼尔的回答是验证数字的一种非常简单的方法。您可能会发现另外两种有用的方法。
注意:不“传递”keyDown 消息会阻止它向上移动消息路径。 LiveCode 字段对象最后获取消息,因此如果您不传递它,它将不会添加到字段中。这是执行 Neil 建议的过滤的好方法。
通过检查字符是否在列表中进行过滤:
on keyDown pKey
if pKey is among the characters of "0123456789()+" then pass keyDown
end keyDown
使用正则表达式匹配过滤:
on keyDown pKey
put me & pKey into tPhoneNumber
if matchText(tPhoneNumber,"[0-9]") then pass keyDown
end keyDown
在上面的示例中,您获取字段的当前内容和,添加新字符并检查它是否与正则表达式匹配。使用这种方法,您可以使用强制特定格式、长度等的复杂正则表达式。
【讨论】:
与所有 LiveCode 对象一样,字段接收各种消息,其中之一是 keyDown 消息。如果 keyDown 存在于字段中,它将被触发并传递当前按键的参数。既然我们现在知道关键是什么,我们就可以做出适当的反应。 -
on keyDown pKey
if pKey is not a number then
answer "you must type numbers only in this field"
else
pass keyDown
end if
end keyDown
【讨论】: