javascript实现全角与半角字符的转换


Posted in Javascript onJanuary 07, 2015

先上代码,再说废话^_^

/**

 * 转全角字符

 */

function toDBC(str){

    var result = "";

    var len = str.length;

    for(var i=0;i<len;i++)

    {

        var cCode = str.charCodeAt(i);

        //全角与半角相差(除空格外):65248(十进制)

        cCode = (cCode>=0x0021 && cCode<=0x007E)?(cCode + 65248) : cCode;

        //处理空格

        cCode = (cCode==0x0020)?0x03000:cCode;

        result += String.fromCharCode(cCode);

    }

    return result;

}

/**

 * 转半角字符

 */

function toSBC(str){

    var result = "";

    var len = str.length;

    for(var i=0;i<len;i++)

    {

        var cCode = str.charCodeAt(i);

        //全角与半角相差(除空格外):65248(十进制)

        cCode = (cCode>=0xFF01 && cCode<=0xFF5E)?(cCode - 65248) : cCode;

        //处理空格

        cCode = (cCode==0x03000)?0x0020:cCode;

        result += String.fromCharCode(cCode);

    }

    return result;

}

知识点

通过半角字符与全角字符的比较(ASCII字符),我们可以发现,拥有全角与半角之分的ASCII字符范围:0x20~0x7E。

比如:

符号 半角 全角 相差
# 0x0023 0xFF03 0xFEE0
? 0x003F 0xFF1F 0xFEE0
空格 0x0020 0x03000 0x2FE0

除了空格外,其他的字符中,全角与半角均相差:0xFFE0

因此,在全角与半角的字符转换中,需要对空格特殊处理。

例如:

全角 = 半角 + 0xFEE0

半角 = 全角  - 0xFFE0

Javascript 相关文章推荐
Dojo之路:如何利用Dojo实现Drag and Drop效果
Apr 10 Javascript
Javascript 陷阱 window全局对象
Nov 26 Javascript
jQuery 改变CSS样式基础代码
Feb 11 Javascript
jquery 最简单易用的表单验证插件
Feb 27 Javascript
Jquery下attr和removeAttr的使用方法
Dec 28 Javascript
javascript通过class来获取元素实现代码
Feb 20 Javascript
JavaScript中的console.trace()函数介绍
Dec 29 Javascript
Jquery中request和request.form和request.querystring的区别
Nov 26 Javascript
Bootstrap入门书籍之(三)栅格系统
Feb 17 Javascript
jquery点赞功能实现代码 点个赞吧!
May 29 jQuery
JavaScript编程设计模式之构造器模式实例分析
Oct 25 Javascript
Chart.js 轻量级HTML5图表绘制工具库(知识整理)
May 22 Javascript
自己封装的常用javascript函数分享
Jan 07 #Javascript
流量统计器如何鉴别C#:WebBrowser中伪造referer
Jan 07 #Javascript
Angular用来控制元素的展示与否的原生指令介绍
Jan 07 #Javascript
jQuery中children()方法用法实例
Jan 07 #Javascript
angular.element方法汇总
Jan 07 #Javascript
jQuery中slice()方法用法实例
Jan 07 #Javascript
angularJS中$apply()方法详解
Jan 07 #Javascript
You might like
php简单的会话类代码
2011/08/08 PHP
邮箱正则表达式实现代码(针对php)
2013/06/21 PHP
在Windows系统下使用PHP生成Word文档的教程
2015/07/03 PHP
老生常谈文本文件和二进制文件的区别
2017/02/27 PHP
PHP写的简单数字验证码实例
2017/05/23 PHP
Laravel使用原生sql语句并调用的方法
2019/10/09 PHP
Laravel 框架路由原理与路由访问实例分析
2020/04/14 PHP
js控制表单奇偶行样式的简单方法
2013/07/31 Javascript
在JavaScript中对HTML进行反转义详解
2016/05/18 Javascript
Vue.js组件tree实现省市多级联动
2016/12/02 Javascript
JavaScript常见的五种数组去重的方式
2016/12/15 Javascript
JS实现移动端按首字母检索城市列表附源码下载
2017/07/05 Javascript
javascript中UMD规范的代码推演
2018/08/29 Javascript
p5.js码绘“跳动的小正方形”的实现代码
2019/10/22 Javascript
es6数组includes()用法实例分析
2020/04/18 Javascript
Python多线程编程(一):threading模块综述
2015/04/05 Python
详解Python中的循环语句的用法
2015/04/09 Python
Python自定义进程池实例分析【生产者、消费者模型问题】
2016/09/19 Python
Python数据操作方法封装类实例
2017/06/23 Python
Python 异常处理的实例详解
2017/09/11 Python
python搭建服务器实现两个Android客户端间收发消息
2018/04/12 Python
Python实现图片识别加翻译功能
2019/12/26 Python
Python 文件数据读写的具体实现
2020/01/24 Python
python 图像判断,清晰度(明暗),彩色与黑白实例
2020/06/04 Python
利用Python批量识别电子账单数据的方法
2021/02/08 Python
Lacoste美国官网:经典POLO衫品牌
2016/10/12 全球购物
俄罗斯设计师家具购物网站:The Furnish
2019/12/01 全球购物
说一下Linux下有关用户和组管理的命令
2016/01/04 面试题
《中彩那天》教学反思
2014/02/22 职场文书
触电现场处置方案
2014/05/14 职场文书
小学安全汇报材料
2014/08/14 职场文书
标准版离职证明书
2014/09/12 职场文书
五一放假通知怎么写
2015/08/18 职场文书
Nginx配置80端口访问8080及项目名地址方法解析
2021/03/31 Servers
Vue过滤器(filter)实现及应用场景详解
2021/06/15 Vue.js
Hive HQL支持2种查询语句风格
2022/06/25 数据库