求正则:asp.net里验证中文或全角或字符数字小于20个字节?

fwiw12 2009-03-24 09:36:01
大家好,在asp.net里面怎么加正则验证,字符20个字节,比如已经输入了3个汉字,那么剩下只能够输入14个半角字母或数字了,正则怎样验证输入20个任意字符啊,大师们

下面这个不可以啊,用(.|\n){1,20}也不对,
 	<asp:regularexpressionvalidator id="RegularExpressionValidatorDETVALUE" runat="server" ControlToValidate="txtDETVALUE" ErrorMessage="×长度错误:检测值最大20个字节,即10个汉字"
ValidationExpression="[\u4e00-\u9fa5]{1,20}|\w{1,20}">×长度</asp:regularexpressionvalidator>
...全文
172 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
fwiw12 2009-03-24
  • 打赏
  • 举报
回复
这种不是最佳方案,虽然能够提示,但是仍然可以提交,如果在提交时候加个函数,那么每个输入都加的话很多很麻烦,

如果有asp.net的自定义验证控件的话就好了
wackyboy 2009-03-24
  • 打赏
  • 举报
回复
可以放到空间的onchange="Javascript:chklen(this,10);" 这样就可以限定10个字符了
fwiw12 2009-03-24
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 wackyboy 的回复:]
JScript code
String.prototype.lenX = function(){
// 将双字节的字符换成两个一个字节的字符,来判断长度
return this.replace(/[^\x00-\xff]/g,"**").length;
}

String.prototype.trim= function(){
// 用正则表达式将前后空格
// 用空字符串替代。
return this.replace(/(^\s*)|(\s*$)/g, "");
}
function chklen(obj,len)
{
obj.value=obj.value.trim();//去除头尾空格

[/Quote]
这个怎么引用啊?
fwiw12 2009-03-24
  • 打赏
  • 举报
回复
回复楼上,我是想看看asp:regularexpressionvalidator下能够有简单的解决方案不,看来正则只可以检测字符数,不可以检测字节数啊!
wackyboy 2009-03-24
  • 打赏
  • 举报
回复

String.prototype.lenX = function(){
// 将双字节的字符换成两个一个字节的字符,来判断长度
return this.replace(/[^\x00-\xff]/g,"**").length;
}

String.prototype.trim= function(){
// 用正则表达式将前后空格
// 用空字符串替代。
return this.replace(/(^\s*)|(\s*$)/g, "");
}
function chklen(obj,len)
{
obj.value=obj.value.trim();//去除头尾空格
if (obj.value.lenX() > len)
{
alert("抱歉,长度不能大于"+len+"个字符(一个中文等于两个字符)");
obj.focus();
return false;
}
}



你不是问了吗 难道这样不行?
我是觉得单单是正则表达式很难解决这个问题
帮顶了

62,047

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧