9.5.过滤文本输入框

问题
我想过滤掉用户输入的某些内容
解决办法
设置文本框的restrict 属性
讨论
默认下用户可输入任何字符,但是有些情况我们希望只能输入合法的字符,比如电话号码文本框只能输入数字和横线。

TextField 的restrict 属性可以指定允许的字符被输入,比如:下面的字符是允许的:
+展开
-ActionScript
field.restrict = "abcdefg";

这样就只能输入a, b, c, d, e, f, 或g了,其他字符都被过滤掉了。
如果restrict设为空字符串,那么代表可以输入任何字符,如果想过滤所有字符,则可把type属性设为DYNAMIC。

另外我们还要注意字符是有大小写之分的,换句话说字符a和A是不同的,如上面的restrict 属性设置为abcdefg,但是AB等大写字符仍然可以输入。

restrict 属性支持一定的正则表达式,如果你想指定一个范围的字符可用-符号分开,像下面那样:
+展开
-ActionScript
field.restrict = "a-zA-Z"// 只允许大小写字母
field.restrict = "a-zA-Z "// 只允许大小写字母和空格
field.restrict = "0-9"// 只允许数字

另外也可指定不允许的字符输入,不过需要(^)开头:
下面的例子都是设置为不允许的:
+展开
-ActionScript
field.restrict = "^abcdefg"//不允许a 到g 的字母
field.restrict = "^a-z"// 不允许所有小写字母
field.restrict = "0-9^5"// 允许除了5之外的数字

还可以指定Unicode 编码的字符,比如不允许(Control-Z) 产生的字符:
+展开
-ActionScript
field.restrict = "^\u001A";

还有些特殊符号,可通过(\\)进行转义:
+展开
-ActionScript
field.restrict = "0-9\\-"// 允许数字和横线
field.restrict = "0-9\\^"//允许数字和^
field.restrict = "0-9\\\\"; // 允许数字和斜杆

restrict 属性只影响用户输入的字符进行过滤,但不会对程序产生的字符串进行过滤。

加支付宝好友偷能量挖...


评论(0)网络
阅读(79)喜欢(0)flash/flex/fcs/AIR