Ajax Control Toolkit 中提供了一个字符过滤的控件叫:FliterBox;它提供了三种验证选项,官方的解释是:
 //只能是数字
//只能是数字


 <input onkeyup="value=value.replace(/[^\d]/g,'') "onbeforepaste="clipboardData.setData
<input onkeyup="value=value.replace(/[^\d]/g,'') "onbeforepaste="clipboardData.setData

 ('text',clipboardData.getData('text').replace(/[^\d]/g,''))">
('text',clipboardData.getData('text').replace(/[^\d]/g,''))">

 
<ajaxToolkit:FilteredTextBoxExtender ID="ftbe" runat="server" TargetControlID="TextBox3" FilterType="Custom, Numbers" ValidChars="+-=/*()." />
- TargetControlID - The ID of the text box for this extender to operate on
- FilterType - A the type of filter to apply, as a comma-separated combination of Numbers, LowercaseLetters, UppercaseLetters, and Custom. If Custom is specified, the ValidChars field will be used in addition to other settings such as Numbers.
- ValidChars - A string consisting of all characters considered valid for the text field, if "Custom" is specified as the field type. Otherwise this parameter is ignored.
问题就处在,合法字符是要我们枚举出来的,这显然是一种封闭的思路,我们怎么可以穷尽一切可能呢?于是在页面上限制只能输入英文和数字的地方我们还可以输入中文!!!!如果是采用正则表达式的方法旧灵活多了;
给出替换方案:
 1 //只能是中文
//只能是中文
2 <input onkeyup="value=value.replace(/[ -~]/g,'')" onkeydown="if(event.keyCode==13)
<input onkeyup="value=value.replace(/[ -~]/g,'')" onkeydown="if(event.keyCode==13)
3
4 event.keyCode=9"><br/>
event.keyCode=9"><br/>
5 //只能是数字 英文
//只能是数字 英文
6 <input style="ime-mode:disabled" onkeydown="if(event.keyCode==13)event.keyCode=9">
 <input style="ime-mode:disabled" onkeydown="if(event.keyCode==13)event.keyCode=9">
7 <input type='button' value='submit' ><br/>
<input type='button' value='submit' ><br/>
8 //只能输入英文和数字
//只能输入英文和数字
9
10 <input onkeyup="value=value.replace(/[\W]/g,'') "onbeforepaste="clipboardData.setData
<input onkeyup="value=value.replace(/[\W]/g,'') "onbeforepaste="clipboardData.setData
11
12 ('text',clipboardData.getData('text').replace(/[^\d]/g,''))" onkeydown="if
('text',clipboardData.getData('text').replace(/[^\d]/g,''))" onkeydown="if
13
14 (event.keyCode==13)event.keyCode=9">
(event.keyCode==13)event.keyCode=9">
15
 //只能是中文
//只能是中文2
 <input onkeyup="value=value.replace(/[ -~]/g,'')" onkeydown="if(event.keyCode==13)
<input onkeyup="value=value.replace(/[ -~]/g,'')" onkeydown="if(event.keyCode==13)3

4
 event.keyCode=9"><br/>
event.keyCode=9"><br/>5
 //只能是数字 英文
//只能是数字 英文6
 <input style="ime-mode:disabled" onkeydown="if(event.keyCode==13)event.keyCode=9">
 <input style="ime-mode:disabled" onkeydown="if(event.keyCode==13)event.keyCode=9">7
 <input type='button' value='submit' ><br/>
<input type='button' value='submit' ><br/>8
 //只能输入英文和数字
//只能输入英文和数字9

10
 <input onkeyup="value=value.replace(/[\W]/g,'') "onbeforepaste="clipboardData.setData
<input onkeyup="value=value.replace(/[\W]/g,'') "onbeforepaste="clipboardData.setData11

12
 ('text',clipboardData.getData('text').replace(/[^\d]/g,''))" onkeydown="if
('text',clipboardData.getData('text').replace(/[^\d]/g,''))" onkeydown="if13

14
 (event.keyCode==13)event.keyCode=9">
(event.keyCode==13)event.keyCode=9">15

 //只能是数字
//只能是数字

 <input onkeyup="value=value.replace(/[^\d]/g,'') "onbeforepaste="clipboardData.setData
<input onkeyup="value=value.replace(/[^\d]/g,'') "onbeforepaste="clipboardData.setData
 ('text',clipboardData.getData('text').replace(/[^\d]/g,''))">
('text',clipboardData.getData('text').replace(/[^\d]/g,''))">

 
                    
                     
                    
                 
                    
                 
 


 
                
            
         
        