关于字数统计的正则表达式

kyouken2007 2008-04-09 10:24:56
求一个关于字数统计的正则表达式。
数据库定义是varchar2(256).
现在要对页面输入字符数进行check,然后保存数据库,
允许输入全角半角文字,全角半角字符,全角半角英数字。
请问用正则表达式可以限制吗?
...全文
459 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
live_7sky 2008-04-09
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 kyouken2007 的回复:]
如何限制只能输入单字节字符?
[/Quote]
就是说 不要求 输入中文了。其他都可以了。

只能输入汉字:^[\u4e00-\u9fa5]{0,}$

不能: ^[^\u4e00-\u9fa5]{0,}$
live_7sky 2008-04-09
  • 打赏
  • 举报
回复
取字符中的长度,考虑单字节和双字节情况
// 取字符中的长度,考虑单字节和双字节情况
/// <summary>
/// 计算文本长度,区分中英文字符,中文算两个长度,英文算一个长度
///
/// </summary>
/// <param name="Text">需计算长度的字符串</param>
/// <returns>int</returns>


public static string getLength(string Text, int Lenght)
{
int len = 0;
System.Text.Encoding enc = System.Text.Encoding.GetEncoding("Gb2312");
byte[] bytes = enc.GetBytes(Text);

for (int i = 0; i < Text.Length; i++)
{
byte[] byte_len = enc.GetBytes(Text.Substring(i, 1));
if (byte_len.Length > 1)
len += 2; //如果长度大于1,是中文,占两个字节,+2
else
len += 1; //如果长度等于1,是英文,占一个字节,+1
}

Lenght = Lenght * 2 > len ? len : Lenght * 2;

return enc.GetString(bytes, 0, Lenght-1);


}
hy_lihuan 2008-04-09
  • 打赏
  • 举报
回复
你找错工具了,正则表达式不是用来做你这样的工作的。你应该使用js或者程序代码来实现
kyouken2007 2008-04-09
  • 打赏
  • 举报
回复
如何限制只能输入单字节字符?
大宇_ 2008-04-09
  • 打赏
  • 举报
回复
\S{0,256}
kyouken2007 2008-04-09
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 yunfeng007 的回复:]
允许输入全角半角文字,全角半角字符,全角半角英数字。这不已经允许什么都能输入了吗?还限制个啥?
你是想说限制只能输入256个字符吧?
[/Quote]

是我没说清楚,是要限制只能输入256个字符,
但是不能用MaxLength来限制,
已经用了验证控件,所以希望在超过256个字符的时候给出提示。
  • 打赏
  • 举报
回复
.{0,256}
wangyefeng 2008-04-09
  • 打赏
  • 举报
回复
允许输入全角半角文字,全角半角字符,全角半角英数字?
什么都允许啦.还限制什么呀?

最大输入字符TextBox属性中MaxLength设一下就可以啦!
yunfeng007 2008-04-09
  • 打赏
  • 举报
回复
允许输入全角半角文字,全角半角字符,全角半角英数字。这不已经允许什么都能输入了吗?还限制个啥?
你是想说限制只能输入256个字符吧?
wuhq030710914 2008-04-09
  • 打赏
  • 举报
回复

var strText2=document.all(str2).value; //输入框中内容
strReg2=/^\w{0,256}$/;//身份证验证
r2=strText2.search(strReg2); //输入框中内容以及格式的值
if(r2==-1)
{
//不符合条件
}
kyouken2007 2008-04-09
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 evafly920 的回复:]
不用那么复杂,.Net本身就可以做了

if Encoding.Default.GetByteCount(ProductName)>256 then
'中文2Bit,英文1Bit
......
end if

----------------------------------
中国无忧商务网-无忧商务 商务无忧
www.cn5135.com
[/Quote]

我想在客户端进行处理,不走服务端,应该怎么做?
evafly920 2008-04-09
  • 打赏
  • 举报
回复
不用那么复杂,.Net本身就可以做了

if Encoding.Default.GetByteCount(ProductName)>256 then
'中文2Bit,英文1Bit
......
end if

----------------------------------
中国无忧商务网-无忧商务 商务无忧
www.cn5135.com
kyouken2007 2008-04-09
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 hy_lihuan 的回复:]
你找错工具了,正则表达式不是用来做你这样的工作的。你应该使用js或者程序代码来实现
[/Quote]

我使用了验证控件,想配合正则来实现验证,我觉得没什么问题。

62,041

社区成员

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

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

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

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