有个TextBox
现在要求是,这个文本框只能输入0-255的数字和*号,当输入*号的时候,就默认代表了0-255这所有的256个数字,并且出现了一个*号后,*后面就不能再输入*号(仅有一个*号)
其实就是个IP地址问题,文本框只能输入0-255的数字和*号,*号的时候就包括0-255这一段的256个IP不用正则写
现在要求是,这个文本框只能输入0-255的数字和*号,当输入*号的时候,就默认代表了0-255这所有的256个数字,并且出现了一个*号后,*后面就不能再输入*号(仅有一个*号)
其实就是个IP地址问题,文本框只能输入0-255的数字和*号,*号的时候就包括0-255这一段的256个IP不用正则写
{
textBox1.MaxLength = 3; // 可以到属性中设置
}private void textBox1_TextChanged(object sender, EventArgs e)
{
if (((TextBox)sender).Text == string.Empty) return; // 为空时不处理
int vInteger;
if (!int.TryParse(((TextBox)sender).Text, out vInteger) || vInteger > 255)
// 当不能转换为整数或者数值大于255时设置为0
((TextBox)sender).Text = "0";
}private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == '*') // 输入星号则Text设置为一个星号
{
((TextBox)sender).Text = "*";
e.Handled = true; } else e.Handled = ("0123456789" + (char)Keys.Back).IndexOf(
char.ToUpper(e.KeyChar)) < 0; // 只能输入数字或退格键
}
|| vInteger < 0) // 保险起见可以判断一下负数
不是一个文本框,是4个文本框
一个文本框只能输入0-255和*
如下所视:
textbox1 . textbox2 . textbox3 . textbox4
0-255或则* 0-255或则* 0-255或则* 0-255或则*
这4个textbox和起来才构成了一个完整的IP地址 (中间的.号已经处理)
不是一个单独的textbox里面写一个完整的IP地址
using System.Windows.Forms; 这个命名空间加不上
就跑这来了
input
{
border:1px solid black;
}
</style>
<SCRIPT language="javascript">
<!--start
/*
* added by Lxcjie 2004.6.11
* 约束输入框的内容
* 适用于IE5.0及以上版本
* oObj: 输入框控件对象
* reg: 正则表达式
* isChinese:是否允许打开输入法,true 允许打开,即允许输入中文,false 不能打开,默认为不允许打开
* usage:
*
* //只能输入数字和大小写字母
*<BODY onLoad="regInputRestriction(document.all.txt,/^[0-9a-zA-Z]*$/)">
*<input id="txt">
* </BODY>
*/
function regInputRestriction(oObj,reg,isChinese)
{
function regInput(obj, reg, inputStr)
{
var docSel= document.selection.createRange();
if (docSel.parentElement().tagName.toLowerCase() != "input")
return false;
oSel = docSel.duplicate();
oSel.text = "";
var srcRange = obj.createTextRange();
oSel.setEndPoint("StartToStart", srcRange);
var str = oSel.text + inputStr + srcRange.text.substr(oSel.text.length);
return reg.test(str);
}
//限制输入法是否允许打开
if(isChinese == null)
isChinese = false;
if(isChinese)
oObj.style.imeMode = "auto";
else
oObj.style.imeMode = "disabled";//注册事件
oObj.onkeypress = function()
{
return regInput(this,reg,String.fromCharCode(event.keyCode));//输入时激发
}
oObj.onpaste = function()
{
return regInput(this,reg,window.clipboardData.getData('Text'));//粘贴时激发
}
oObj.ondrop = function()
{
return regInput(this,reg,event.dataTransfer.getData('Text'));//拖拽时激发
}
}
//-->
</SCRIPT>
<script language="javascript">
function initForm()
{
regInputRestriction(document.all.onlyNumber,/^[0-9]*$/);
regInputRestriction(document.all.lowerLetter,/^[a-z]*$/);
regInputRestriction(document.all.upperLetter,/^[A-Z]*$/);
regInputRestriction(document.all.letter,/^[a-zA-Z]*$/);
regInputRestriction(document.all.numberLetter,/^([0-9a-zA-Z])*$/);
regInputRestriction(document.all.chinese,/^[\u4E00-\u9FA5]*$/,true);
regInputRestriction(document.all.twoDigFloat,/^\d*\.?\d{0,2}$/ );
regInputRestriction(document.all.dateNum,/^\d{1,4}([-\/](\d{1,2}([-\/](\d{1,2})?)?)?)?$/);
regInputRestriction(document.all.partEn,/^[a-e]*$/);
regInputRestriction(document.all.notSpecialLetter,/^[^|#]*$/);
}
</script>
<BODY onLoad="initForm()" style="font-size:12px;">
<INPUT id="onlyNumber"> 只能输入数字<br/><br/>
<INPUT id="lowerLetter"> 只能是小写字母<br/><br/>
<INPUT id="upperLetter"> 只能是大写字母<br/><br/>
<INPUT id="letter"> 只能是字母<br/><br/>
<INPUT id="numberLetter"> 只能是字母数字<br/><br/>
<INPUT id="chinese"> 只能是中文(bug:紫光拼音可以输入英文)<br/><br/>
<INPUT id="twoDigFloat"> 只能是两位小数<br/><br/>
<INPUT id="dateNum"> 只能是日期型<br/><br/>
<INPUT id="partEn"> 是部分英文(a-e)<br/><br/>
<INPUT id="notSpecialLetter"> 不能输入 # 和 |<br/><br/>
</BODY>
<FooterTemplate>
<tr>
<td>新增:<asp:TextBox ID="txtIP1" Width="40px" runat="server" MaxLength="3"></asp:TextBox>.
<asp:TextBox ID="txtIP2" Width="40px" runat="server" MaxLength="3"></asp:TextBox>.
<asp:TextBox ID="txtIP3" Width="40px" runat="server" MaxLength="3"></asp:TextBox>.
<asp:TextBox ID="txtIP4" Width="40px" runat="server" MaxLength="3"></asp:TextBox></td>
<td colspan=2></td>
<td colspan=2>有效期:<asp:TextBox ID="txtDays" Width="70px" runat="server"></asp:TextBox>天</td>
<td></td></tr>
<tr><td><asp:Button ID="btnSubmit" runat="server" Text="提交" CommandName="Submit"/></td></tr>
</table>
</FooterTemplate>