Flex中TextInput组件设置限制某些字符的输入的方法
作者:
TextInput组件设置限制输入例如限制某个字符的输入、设置只能输入某些字符等等,下面是具体的示例,喜欢的朋友可以参考下
1. 限制某个字符的输入,用符号 ^ 跟上要限制的字符,可跟多个字符
<!-- 限制字符"~"的输入 -->
<mx:TextInput id="xxx" restrict="^~" />
<!-- 限制字符"ab"的输入 -->
<mx:TextInput id="xxx" restrict="^ab" />
2. 设置只能输入某些字符,将允许输入的字符罗列出来即可,也可以用 - 组合表示字符范围
<!-- 只能输入abc -->
<mx:TextInput id="xxx" restrict="abc" />
<!-- 只能输入小写字母 -->
<mx:TextInput id="xxx" restrict="a-z" />
<!-- 只能输入小写字母、大写字母和数字 -->
<mx:TextInput id="xxx" restrict="a-zA-Z0-9" />
3. 组合使用
<!-- 只能输入数字和点号"." -->
<mx:TextInput id="xxx" restrict="0-9\." />
<!-- 只允许输入数字和-+号"." -->
<mx:TextInput id="xxx" restrict="0-9\+\-" />
<!-- 只能输入除ab之外的小写字母 -->
<mx:TextInput id="xxx" restrict="a-z^ab" />
<!-- 只允许输入数字、英文、汉字 -->
<mx:TextInput id="xxx" restrict="0-9\a-z\^{'[\u4e00-\u9fa5]'}" />
二: FONT color=#108ac6>flex TextInput restrict(正则表达式,约束,限定)
Flex中TextInput的一个比较有用的属性restrict(约束,限定),看下面例子:
1,<mx:TextInput id="test_ti" width="160" maxChars="20" restrict="0-9" text="0"/>
这样,这个输入框最多只能输入20个字符,只能输入0到9之间的数字了,你如果输入别的是输入不进去的
2,<mx:TextInput id="test_ti" width="160" maxChars="20" restrict="0-9\." text="0"/>
这样,输入框可以输入0到9之间的数字,以及输入'.',中间必须用'\'分隔开来
3,<mx:TextInput id="test_ti" width="160" restrict="0-9\ab" text="0"/>
这样,输入框可以输入0到9之间的数字,以及a,或b
4,<mx:TextInput id="test_ti" width="160" restrict="a-z" text="0"/>
可以输入a到z之间任何一个英文字母,'-'表示区间,如果要输入'-',就必须加'\',如\-
结论:
用restrict有个好处,就是省去了验证的麻烦,比如检验是否为数字,如果加了restrict="0-9",就不需要检验了,因为这个输入框只能输入0到9之间的数字,别的输不进去
详细的列子请看:http://blog.minidx.com/2008/05/16/851.html
三:<mx:TextInput id="userName" maxChars="4" restrict="a-zA-Z0-9" />
restrict 用法:
TextField.restrict = "此处为可输入的内容";
field.restrict = "^此处为禁止输入的内容";
restrict属性支持一些类似正则表达式的样式:
field.restrict = "a-zA-z"; //只允许大小字母
field.restrict = "a-zA-z "; //只允许字母和空格
field.restrict = "0-9"; //只允许数字
field.restrict = "^abcdefg"; //除了小写字母abcdefg不允许外,其它都允许
field.restrict = "^a-z"; //所有小写字母都不允许,但是,其它内容都允许,包括大写字母
field.restrict = "0-9^5"; //只允许数字,但5例外
让restrict字符包含具有特殊意义的字母(例如-和^):
field.restrict = "0-9\\-"; //允许数字和破折号
field.restrict = "0-9\\^"; //允许数字和^
field.restrict = "0-9\\\\"; //允许数字和反斜杠
你也可以使用Unicode转义序列,指定允许的内容.例如:
field.restrict = "^\";
注意:ActionScript有区分大小写的,如果restrict属性设为abc,允许字母的大写形式(A,B和C)输入时会变成小写对待形式(a,b和c),反之亦然.restrict属性只影响用户可以输入的内容,脚本可将任何文本放入文本字段中.
补充:
另外可以追加限制输入的字符数,设置maxChars属性即可
<s:TextInput id="textinput_test" restrict="0-9\-\+" maxChars="4"/>
<!-- 限制字符"~"的输入 -->
<mx:TextInput id="xxx" restrict="^~" />
<!-- 限制字符"ab"的输入 -->
<mx:TextInput id="xxx" restrict="^ab" />
2. 设置只能输入某些字符,将允许输入的字符罗列出来即可,也可以用 - 组合表示字符范围
<!-- 只能输入abc -->
<mx:TextInput id="xxx" restrict="abc" />
<!-- 只能输入小写字母 -->
<mx:TextInput id="xxx" restrict="a-z" />
<!-- 只能输入小写字母、大写字母和数字 -->
<mx:TextInput id="xxx" restrict="a-zA-Z0-9" />
3. 组合使用
<!-- 只能输入数字和点号"." -->
<mx:TextInput id="xxx" restrict="0-9\." />
<!-- 只允许输入数字和-+号"." -->
<mx:TextInput id="xxx" restrict="0-9\+\-" />
<!-- 只能输入除ab之外的小写字母 -->
<mx:TextInput id="xxx" restrict="a-z^ab" />
<!-- 只允许输入数字、英文、汉字 -->
<mx:TextInput id="xxx" restrict="0-9\a-z\^{'[\u4e00-\u9fa5]'}" />
二: FONT color=#108ac6>flex TextInput restrict(正则表达式,约束,限定)
Flex中TextInput的一个比较有用的属性restrict(约束,限定),看下面例子:
1,<mx:TextInput id="test_ti" width="160" maxChars="20" restrict="0-9" text="0"/>
这样,这个输入框最多只能输入20个字符,只能输入0到9之间的数字了,你如果输入别的是输入不进去的
2,<mx:TextInput id="test_ti" width="160" maxChars="20" restrict="0-9\." text="0"/>
这样,输入框可以输入0到9之间的数字,以及输入'.',中间必须用'\'分隔开来
3,<mx:TextInput id="test_ti" width="160" restrict="0-9\ab" text="0"/>
这样,输入框可以输入0到9之间的数字,以及a,或b
4,<mx:TextInput id="test_ti" width="160" restrict="a-z" text="0"/>
可以输入a到z之间任何一个英文字母,'-'表示区间,如果要输入'-',就必须加'\',如\-
结论:
用restrict有个好处,就是省去了验证的麻烦,比如检验是否为数字,如果加了restrict="0-9",就不需要检验了,因为这个输入框只能输入0到9之间的数字,别的输不进去
详细的列子请看:http://blog.minidx.com/2008/05/16/851.html
三:<mx:TextInput id="userName" maxChars="4" restrict="a-zA-Z0-9" />
restrict 用法:
TextField.restrict = "此处为可输入的内容";
field.restrict = "^此处为禁止输入的内容";
restrict属性支持一些类似正则表达式的样式:
field.restrict = "a-zA-z"; //只允许大小字母
field.restrict = "a-zA-z "; //只允许字母和空格
field.restrict = "0-9"; //只允许数字
field.restrict = "^abcdefg"; //除了小写字母abcdefg不允许外,其它都允许
field.restrict = "^a-z"; //所有小写字母都不允许,但是,其它内容都允许,包括大写字母
field.restrict = "0-9^5"; //只允许数字,但5例外
让restrict字符包含具有特殊意义的字母(例如-和^):
field.restrict = "0-9\\-"; //允许数字和破折号
field.restrict = "0-9\\^"; //允许数字和^
field.restrict = "0-9\\\\"; //允许数字和反斜杠
你也可以使用Unicode转义序列,指定允许的内容.例如:
field.restrict = "^\";
注意:ActionScript有区分大小写的,如果restrict属性设为abc,允许字母的大写形式(A,B和C)输入时会变成小写对待形式(a,b和c),反之亦然.restrict属性只影响用户可以输入的内容,脚本可将任何文本放入文本字段中.
补充:
另外可以追加限制输入的字符数,设置maxChars属性即可
<s:TextInput id="textinput_test" restrict="0-9\-\+" maxChars="4"/>