首页 > Web开发 > 详细

输入的全角字符转换成半角字符--css、js、ASP.NET

时间:2014-01-17 00:12:38      阅读:532      评论:0      收藏:0      [点我收藏+]

我们经常需要用户在表单中输入数字,用户不小心使用了全角状态输入数字,但是在程序中全角的数字是不能直接转换为数字的。这种全角数字的错误处理起来就有些麻烦了。对一些没有经验用户来说明明已经输入数字了,怎么还是提示输入不是数字呢?这样就很影响用户体验。

css解决方法:

在input的style设置ime-mode为disabled,禁用中文输入法。

<asp:TextBox ID="tbLink" runat="server" MaxLength="32" style="ime-mode:disabled;"></asp:TextBox>

优点:简单实用,

缺点:只能在ie浏览器中使用。

 

js解决方法:

bubuko.com,布布扣
//原生JavaScript全角转换为半角函数 
function ToCDB(str){
  var result = ‘‘;
  for(var i=0; i < str.length; i++){
    code = str.charCodeAt(i);
    if(code >= 65281 && code <= 65374){
      result += String.fromCharCode(str.charCodeAt(i) - 65248);
    }else if (code == 12288){
      result += String.fromCharCode(str.charCodeAt(i) - 12288 + 32);
    }else{
      result += str.charAt(i);
    }
  }
 return result;
}
bubuko.com,布布扣

 

ASP.NET(c#)解决方法:

bubuko.com,布布扣
     /// <summary>
        /// 转换为半角字符串
        /// </summary>
        /// <param name="text"></param>
        /// <returns></returns>
        public static string ConvertToHalf(string text) 
        {
            char[] c = text.ToCharArray();

            for (int i = 0; i < c.Length; i++)
            {
                byte[] b = System.Text.Encoding.Unicode.GetBytes(c, i, 1);
                if (b.Length == 2)
                {
                    if (b[1] == 255)
                    {
                        b[0] = (byte)(b[0] + 32);
                        b[1] = 0;
                        c[i] = System.Text.Encoding.Unicode.GetChars(b)[0];
                    }
                }
            }
            return new string(c);
        }
bubuko.com,布布扣

输入的全角字符转换成半角字符--css、js、ASP.NET

原文:http://www.cnblogs.com/elves/p/3522196.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!