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 相关文章推荐
Jquery 基础学习笔记
May 29 Javascript
js实现div的切换特效上一个下一个
Feb 11 Javascript
JavaScript 变量、作用域及内存
Apr 08 Javascript
javascript简易画板开发
Apr 12 Javascript
详解js的六大数据类型
Dec 27 Javascript
浅谈angularjs $http提交数据探索
Jan 20 Javascript
详解JS: reduce方法实现 webpack多文件入口
Feb 14 Javascript
Vue.2.0.5过渡效果使用技巧
Mar 16 Javascript
快速搭建vue2.0+boostrap项目的方法
Apr 09 Javascript
jQuery实现table表格checkbox全选的方法分析
Jul 04 jQuery
关于微信小程序bug记录与解决方法
Aug 15 Javascript
如何在JS文件中获取Vue组件
Sep 16 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详细彻底学习Smarty
2008/03/27 PHP
Codeigniter操作数据库表的优化写法总结
2014/06/12 PHP
PHP SPL标准库之数据结构栈(SplStack)介绍
2015/05/12 PHP
php解析url并得到url中的参数及获取url参数的四种方式
2015/10/26 PHP
在PHP语言中使用JSON和将json还原成数组的方法
2016/07/19 PHP
php微信开发之关键词回复功能
2018/06/13 PHP
PHP使用HTML5 FileApi实现Ajax上传文件功能示例
2019/07/01 PHP
JavaScript 事件记录使用说明
2009/10/20 Javascript
JQuery 图片延迟加载并等比缩放插件
2009/11/09 Javascript
jQuery阻止冒泡和HTML默认操作
2010/11/17 Javascript
JS中的substring和substr函数的区别说明
2013/05/07 Javascript
简洁Ajax函数处理(示例代码)
2013/11/15 Javascript
JavaScript数据结构和算法之图和图算法
2015/02/11 Javascript
基于insertBefore制作简单的循环插空效果
2015/09/21 Javascript
jQuery+ajax+asp.net获取Json值的方法
2016/06/08 Javascript
jQuery得到多个值只能用取Class ,不能用取ID的方法
2016/12/04 Javascript
jQuery实现表格冻结顶栏效果
2017/08/20 jQuery
vue+element实现打印页面功能
2019/05/20 Javascript
layui-tree实现Ajax异步请求后动态添加节点的方法
2019/09/23 Javascript
[41:52]2018DOTA2亚洲邀请赛3月29日 小组赛A组 TNC VS OpTic
2018/03/30 DOTA
Django实现的自定义访问日志模块示例
2017/06/23 Python
Python 结巴分词实现关键词抽取分析
2017/10/21 Python
Python中super函数的用法
2017/11/17 Python
python表格存取的方法
2018/03/07 Python
对Python 文件夹遍历和文件查找的实例讲解
2018/04/26 Python
解决Python pip 自动更新升级失败的问题
2020/02/21 Python
python分布式爬虫中消息队列知识点详解
2020/11/26 Python
法国高保真音响和家庭影院商店:Son Video
2019/04/26 全球购物
SmartBuyGlasses德国:购买太阳镜和眼镜
2019/08/20 全球购物
编程实现去掉XML的重复结点
2014/05/28 面试题
电子商务专业自荐信
2014/06/02 职场文书
公证委托书标准格式
2014/09/11 职场文书
幼儿园三八妇女节活动总结
2015/02/06 职场文书
2015年健康教育工作总结
2015/04/10 职场文书
vue首次渲染全过程
2021/04/21 Vue.js
mysql5.7使用binlog 恢复数据的方法
2021/06/03 MySQL