十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
可以,用VB自带函数就可以了半角转全角:Text2.Text = StrConv(Text1.Text, )全角转半角:Text2.Text = StrConv(Text1.Text,vbNarrow)当然你可以做得智能一点,譬如只允许输入数字、符号和字母什么的。
公司主营业务:网站设计、成都网站建设、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。创新互联公司是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。创新互联公司推出景宁畲族自治免费做网站回馈大家。
/// 转全角的函数(SBC case) /// ///
任意字符串
/// 全角字符串 /// ///全角空格为 半角空格为 ///其他字符半角( )与全角( )的对应关系是 均相差 ///
public string ToSBC(string input) { //半角转全角 char[] c=input ToCharArray(); for (int i = ; i c Length; i++) { if (c[i]== ) { c[i]=(char) ; continue; } if (c[i] ) c[i]=(char)(c[i]+ ); } return new string(c); } ///
/// 转半角的函数(DBC case) /// ///
任意字符串
/// 半角字符串 /// ///全角空格为 半角空格为 ///其他字符半角( )与全角( )的对应关系是 均相差 /// public string ToDBC(string input) { char[] c=input ToCharArray(); for (int i = ; i c Length; i++) { if (c[i]== ) { c[i]= (char) ; continue; } if (c[i] c[i] ) c[i]=(char)(c[i] ); } return new string(c); }
VB版本
lishixinzhi/Article/program/net/201311/11902
遍历每一个字符,看是全角还是半角的。半角的字符总数 +1,全角的字符总数 +2。
参考:
Public Function GetByteLength(ByVal value As String) As Long
Dim i As Long = 0
For Each c As Char In value
If (c.ToString().Length = System.Text.Encoding.Default.GetByteCount(value.ToString())) Then
i = i + 1
End If
i = i + 1
Next
Return i
End Function
VB内部采用Unicode编码,在这种编码格式下,任何字符(包括半角的字母、数字、符号以及全角的汉字、符号)都是占用两个字节的。因此,Len("1111徐")的返回值是5,表示5个字符,而LenB("1111徐")的返回值是10,表示占用10个字节。
要想按ANSI编码格式来获取字符串的字节数,必须这样:
LenB(StrConv("1111徐", vbFromUnicode))
要注意哦,虽然返回值是6,但这个数与这个字符串在内存中的实际占用字节数是不相符的哦!