C#输入全角转半角以及格式检查
2011-09-30 14:41
585 查看
新建一个项目quanbanjiao,在此项目下新建一个类Class1
using System;
using System.Web;
using System.Text;
namespace quanbanjiao
{
public class Class1
{
/**/
/// <summary>
/// 判断字符是否英文半角字符或标点
/// </summary>
/// <remarks>
/// 32 空格
/// 33-47 标点
/// 48-57 0~9
/// 58-64 标点
/// 65-90 A~Z
/// 91-96 标点
/// 97-122 a~z
/// 123-126 标点
/// </remarks>
public static bool IsBjChar(char c)
{
int i = (int)c;
return i >= 32 && i <= 126;
}
/**/
/// <summary>
/// 判断字符是否全角字符或标点
/// </summary>
/// <remarks>
/// <para>全角字符 - 65248 = 半角字符</para>
/// <para>全角空格例外</para>
/// </remarks>
public static bool IsQjChar(char c)
{
if (c == '\u3000') return true;
int i = (int)c - 65248;
if (i < 32) return false;
return IsBjChar((char)i);
}
/**/
/// <summary>
/// 将字符串中的全角字符转换为半角
/// </summary>
public static string ToBj(string type,string s)
{
if (s == null || s.Trim() == string.Empty) return s;
StringBuilder sb = new StringBuilder(s.Length);
for (int i = 0; i < s.Length; i++)
{
if (s[i] == '\u3000')
sb.Append('\u0020');
else if (IsQjChar(s[i]))
sb.Append((char)((int)s[i] - 65248));
else
sb.Append(s[i]);
}
//如果是int类型的,则只能输入int类型,否则自动设为0
if (type.ToLower() == "int")
{
try
{
Convert.ToInt32(sb.ToString());
}
catch
{
return "0";
}
}
//如果是float或double类型的,则只能输入这两种类型,否则自动设为0
if (type.ToLower() == "float" || type.ToLower() == "double")
{
try
{
Convert.ToDouble(sb.ToString());
}
catch
{
return "0";
}
}
return sb.ToString();
}
}
}
测试的例子:
using System;
using System.Web;
using quanbanjiao;//项目名称为quanbanjiao
namespace quanbanjiao
{
public partial class WebForm1 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
TextBox1.Text = Class1.ToBj("string", TextBox1.Text.Trim());
}
}
}
using System;
using System.Web;
using System.Text;
namespace quanbanjiao
{
public class Class1
{
/**/
/// <summary>
/// 判断字符是否英文半角字符或标点
/// </summary>
/// <remarks>
/// 32 空格
/// 33-47 标点
/// 48-57 0~9
/// 58-64 标点
/// 65-90 A~Z
/// 91-96 标点
/// 97-122 a~z
/// 123-126 标点
/// </remarks>
public static bool IsBjChar(char c)
{
int i = (int)c;
return i >= 32 && i <= 126;
}
/**/
/// <summary>
/// 判断字符是否全角字符或标点
/// </summary>
/// <remarks>
/// <para>全角字符 - 65248 = 半角字符</para>
/// <para>全角空格例外</para>
/// </remarks>
public static bool IsQjChar(char c)
{
if (c == '\u3000') return true;
int i = (int)c - 65248;
if (i < 32) return false;
return IsBjChar((char)i);
}
/**/
/// <summary>
/// 将字符串中的全角字符转换为半角
/// </summary>
public static string ToBj(string type,string s)
{
if (s == null || s.Trim() == string.Empty) return s;
StringBuilder sb = new StringBuilder(s.Length);
for (int i = 0; i < s.Length; i++)
{
if (s[i] == '\u3000')
sb.Append('\u0020');
else if (IsQjChar(s[i]))
sb.Append((char)((int)s[i] - 65248));
else
sb.Append(s[i]);
}
//如果是int类型的,则只能输入int类型,否则自动设为0
if (type.ToLower() == "int")
{
try
{
Convert.ToInt32(sb.ToString());
}
catch
{
return "0";
}
}
//如果是float或double类型的,则只能输入这两种类型,否则自动设为0
if (type.ToLower() == "float" || type.ToLower() == "double")
{
try
{
Convert.ToDouble(sb.ToString());
}
catch
{
return "0";
}
}
return sb.ToString();
}
}
}
测试的例子:
using System;
using System.Web;
using quanbanjiao;//项目名称为quanbanjiao
namespace quanbanjiao
{
public partial class WebForm1 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
TextBox1.Text = Class1.ToBj("string", TextBox1.Text.Trim());
}
}
}
相关文章推荐
- C# 全角转换半角以及半角转换为全角
- C#全角转换成半角并检查
- 文本框限制输入(半角,全角互转),以及控制输入法问题,解决方法整合
- 文本框限制输入(半角,全角互转),以及控制输入法问题,解决方法整合
- C# 全角和半角转换以及判断的简单代码
- C# 全角转换半角以及半角转换为全角
- C# list存储的数据格式以及默认初始化空间,内存回收分析
- C#实现全角半角转换
- C# 【转贴】中判断字符串是全角还是半角
- C#中判断字符串是全角还是半角的实现代码
- 半角输入与全角的相互转化
- C#中全角与半角的转换
- C#正则表达式判断输入日期格式是否正确
- 注册界面 用javascript检查输入信息格式是否正确 完整版
- C#中半角字符与全角字符的互转
- 检查输入的字符串是否是手机号格式
- 【总结】DateTime日期类型格式化显示(转)以及判断输入文本框是否符合日期格式
- 深入理解 c# 第二章 数组协变以及执行时类型检查
- C#中直接调用VB.NET的函数,兼论半角与全角、简繁体中文互相转化<收藏>
- C#中判断字符串是全角还是半角