如何判断文本框输入的是全角还是半角?

xukang_max 2008-03-10 02:51:35
现在我要在一个文本框里限制输入半角50个(要=全角25个)!
请问如何实现。
...全文
213 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
kyo_max 2008-12-04
  • 打赏
  • 举报
回复
function lngByteLength(strSrc)
{
var strTemp;
strTemp=strSrc;
len = 0;
strSrc = escape(strSrc);
for(i = 0; i < strSrc.length; i++, len++)
{
if(strSrc.charAt(i) == "%")
{
if(strSrc.charAt(++i) == "u")
{
i += 3;
len++;
}
i++;
}
}
}
lizhengnan 2008-03-10
  • 打赏
  • 举报
回复
这里只要把你TextBox的MaxLength属性设为50就可以了.
lizhengnan 2008-03-10
  • 打赏
  • 举报
回复

Private Sub Edit_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.TextChanged
With Me
Edit.Text = TextIntercept(Edit.Text, Edit.MaxLength)
End With
End Sub

wtfyous 2008-03-10
  • 打赏
  • 举报
回复
Encoding.Default.GetBytes(str).Length;

一个汉字两个字节
lizhengnan 2008-03-10
  • 打赏
  • 举报
回复

Private Function TextIntercept(ByVal strIn As String, ByVal length As Integer) As String
Dim strRet As String = ""

Try
If LenByte(strIn) > length Then

Dim bytTemp() As Byte = System.Text.Encoding.Default.GetBytes(strIn)

ReDim Preserve bytTemp(length - 1)

strRet = System.Text.Encoding.Default.GetString(bytTemp)

If strRet.Chars(strRet.Length - 1) <> strIn.Chars(strRet.Length - 1) Then
strRet = strRet.Remove(strRet.Length - 1, 1)
End If
Else
strRet = strIn
End If
Catch ex As Exception
strRet = ""
End Try

Return strRet
End Function

Private Function LenByte(ByVal s As String) As Integer
Return System.Text.Encoding.Default.GetByteCount(s)
End Function

Private Sub Edit_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.TextChanged
With Me
Edit.Text = TextIntercept(.Text, .MaxLength)
End With
End Sub
阿非 2008-03-10
  • 打赏
  • 举报
回复
正则
cefriend 2008-03-10
  • 打赏
  • 举报
回复






上面的就已经给出了汉字的判断方法了,

bool IsChineseChar = System.Text.RegularExpressions.Regex(input, @"[\u4e00-\u9fa5]");
正刚表达式









xukang_max 2008-03-10
  • 打赏
  • 举报
回复
高手来指导下啊!急~~~
blankfang 2008-03-10
  • 打赏
  • 举报
回复
期待中!!!
xukang_max 2008-03-10
  • 打赏
  • 举报
回复
哦,谢谢!文本框限制只能输入50个字符。
例如“ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWX”
同时该文本框只能输入25个汉字。
可以给详细的code吗?
cefriend 2008-03-10
  • 打赏
  • 举报
回复
全角字符就是汉字啊
所以判断一个符号或字母是全角还是半角跟判断汉字的处理方式是一样的

应该是:
bool IsChineseChar = System.Text.RegularExpressions.Regex(input, @"[\u4e00-\u9fa5]");

62,046

社区成员

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

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

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

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