当前位置:编程学习 > C#/ASP.NET >>

正则表达式,限制输入长度的问题

我为textbox设置邮件格式
正则表达式如下
\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*

现在我除了为textbox设置邮件格式以外,还要限制其总的输入长度为15
aaa@sina.com   ok!
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb@sina.com       error(这个是不会输入的)

请问该如何设置??(不使用maxlength,使用正则表达式该怎么写?)

--------------------编程问答-------------------- \w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*{15} --------------------编程问答-------------------- 先判断长度,如果长度大于15那就不返回验证不通过。。如果小于15再进行正则表达式验证 --------------------编程问答-------------------- 先判断长度,如果长度大于15那就返回验证不通过。。如果小于15再进行正则表达式验证 --------------------编程问答-------------------- reg = new Regex(@"^.{0,15}$")

楼主如果是想通过1个正则式同时实现两种校验,我就不晓得了 --------------------编程问答-------------------- 你可以使用keydown事件里判断输入的长度,如果到达15,后面的就忽略。。。 --------------------编程问答-------------------- try...

^(?!.{16,})\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$
--------------------编程问答-------------------- 2,3,4,5楼的做法不是我想要,(我想要的是一个正则表达式同时实现email格式和输入长度的控制)
1#的实现不了emial和长度的同时控制
6#的正则表达式有误

继续请教... ... --------------------编程问答-------------------- 不明白你这么做的意义?
限制长度为什么一定要做在正则表达式里呢?
难道根据email内容的不同长度的限制也要变化吗?
否则得话就没有必要了 --------------------编程问答-------------------- 还有一个问题请教一下
#2 
邮件的正则表达式我理解
\w+@\w+\.\w+ 好像就可以了(************@******.*****)

那么这个\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)* 与上面相比
\w+@
\w+([-+.]\w+)*@
多出来的([-+.]\w+)*是什么意思?有什么作用?


--------------------编程问答-------------------- (\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*){0,15} --------------------编程问答-------------------- (\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*){0,15}这个实现不了长度限制

我要这么做的场景如下
程序中很多界面有Email的输入,对这些TextBox要做邮件格式设置, 
所以写了一个公共方法
SetEmailTextBoxFormat(...)
{
  //正则表达式控制
  // \w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
}
但是这样做了以后,当我设置TextBox.Maxlength = 15时候,这个属性已经不起作用了,

我想要的结果就是,界面上的TextBox既能控制Email格式输入,也能控制其输入长度
一种方法就是
在TextBox.TextChange事件去判断处理,但这种方法显然不是最好的,每一Email个控件都得定义事件处理

理想的是正则表达式既能控制Email格式,也能控制长度,这样一个公共方法就可以处理了

继续请教。。。
1 正则表达式同时限制Email格式和MaxLength
2 基于我的应用场景,提出其他的更好的解决方法,
谢谢!!

--------------------编程问答-------------------- 期待答案 --------------------编程问答-------------------- ^(.){1,15}$
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,