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 相关文章推荐
Dom操作之兼容技巧分享
Sep 20 Javascript
js鼠标点击事件在各个浏览器中的写法及Event对象属性介绍
Jan 24 Javascript
鼠标经过tr时,改变tr当前背景颜色
Jan 13 Javascript
基于jQuery1.9版本如何判断浏览器版本类型
Jan 12 Javascript
移动端js触摸事件详解
Sep 18 Javascript
javascript阻止事件冒泡和浏览器的默认行为
Jan 21 Javascript
vue开发环境配置跨域的方法步骤
Jan 16 Javascript
JavaScript实现模态对话框实例
Jan 13 Javascript
JavaScript实现旋转木马轮播图
Mar 16 Javascript
微信小程序实现手指拖动选项排序
Apr 22 Javascript
解决VUE项目localhost端口服务器拒绝连接,只能用127.0.0.1的问题
Aug 14 Javascript
JS访问对象两种方式区别解析
Aug 29 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 header示例代码(推荐)
2010/09/08 PHP
3个PHP多维数组转为一维数组的方法实例
2014/03/13 PHP
php微信开发之音乐回复功能
2018/06/14 PHP
PHP levenshtein()函数用法讲解
2019/03/08 PHP
jquery下操作HTML控件的实现代码
2010/01/12 Javascript
跟着JQuery API学Jquery 之三 筛选
2010/04/09 Javascript
nodejs中使用monk访问mongodb
2014/07/06 NodeJs
JS实现转动随机数抽奖特效代码
2020/04/16 Javascript
jQuery动态添加可拖动元素完整实例(附demo源码下载)
2016/06/21 Javascript
总结AngularJS开发者最常犯的十个错误
2016/08/31 Javascript
JavaScript原生数组Array常用方法
2017/04/06 Javascript
JavaScript基本语法_动力节点Java学院整理
2017/06/26 Javascript
简单谈谈vue的过渡动画(推荐)
2017/10/11 Javascript
基于vue-ssr的静态网站生成器VuePress 初体验
2018/04/17 Javascript
vue获取元素宽、高、距离左边距离,右,上距离等还有XY坐标轴的方法
2018/09/05 Javascript
vue-cli V3.0版本的使用详解
2018/10/24 Javascript
基于纯JS实现多张图片的懒加载Lazy过程解析
2019/10/14 Javascript
[02:25]DOTA2英雄基础教程 熊战士
2014/01/03 DOTA
[52:00]2018DOTA2亚洲邀请赛 4.1 小组赛 A组加赛 LGD vs Optic
2018/04/02 DOTA
python实现的简单窗口倒计时界面实例
2015/05/05 Python
详解Django项目中模板标签及模板的继承与引用(网站中快速布置广告)
2019/03/27 Python
pytorch sampler对数据进行采样的实现
2019/12/31 Python
使用pyhon绘图比较两个手机屏幕大小(实例代码)
2020/01/03 Python
python super函数使用方法详解
2020/02/14 Python
canvas学习笔记之绘制简单路径
2019/01/28 HTML / CSS
市场营销个人求职信范文
2014/02/02 职场文书
应届电子商务毕业自荐书范文
2014/02/11 职场文书
博士毕业生自我鉴定范文
2014/04/13 职场文书
活动总结报告格式
2014/05/09 职场文书
元旦趣味活动方案
2014/08/22 职场文书
小学教师师德师风自我剖析材料
2014/09/29 职场文书
2014教师年度思想工作总结
2014/11/10 职场文书
建议书的格式及范文
2015/09/14 职场文书
2019公司管理制度
2019/04/19 职场文书
个人工作总结(管理人员)范文
2019/08/13 职场文书
Django集成富文本编辑器summernote的实现步骤
2021/05/31 Python