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 相关文章推荐
Javascript 多物体运动的实现
Dec 24 Javascript
javascript截取字符串小结
Apr 28 Javascript
javascript如何操作HTML下拉列表标签
Aug 20 Javascript
js事件处理程序跨浏览器解决方案
Mar 27 Javascript
js调用webservice构造SOAP进行身份验证
Apr 27 Javascript
聊一聊JavaScript作用域和作用域链
May 03 Javascript
jQuery实现淡入淡出的模态框
Feb 09 Javascript
js定时器实现倒计时效果
Nov 05 Javascript
JS实现的JSON数组去重算法示例
Apr 11 Javascript
vue实现表单未编辑或未保存离开弹窗提示功能
Apr 08 Javascript
js和jquery判断数据类型的4种方法总结
Aug 28 jQuery
OpenLayers3实现测量功能
Sep 25 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
PHP5 安装方法
2006/10/09 PHP
ionCube 一款类似zend的PHP加密/解密工具
2010/07/25 PHP
php保存二进制原始数据为图片的程序代码
2014/10/14 PHP
laravel 5 实现模板主题功能
2015/03/02 PHP
详解php几行代码实现CSV格式文件输出
2017/07/01 PHP
PHP+jQuery实现双击修改table表格功能示例
2019/02/21 PHP
JavaScript学习笔记(十)
2010/01/17 Javascript
再次分享18个非常棒的jQuery表格插件
2011/04/10 Javascript
THREE.JS入门教程(3)着色器-下
2013/01/24 Javascript
点击按钮或链接不跳转只刷新页面的脚本整理
2013/10/22 Javascript
Node.js实现简单聊天服务器
2014/06/20 Javascript
jQuery中:last选择器用法实例
2014/12/30 Javascript
Backbone.js中的集合详解
2015/01/14 Javascript
Node.js巧妙实现Web应用代码热更新
2015/10/22 Javascript
快速移动鼠标触发问题及解决方法(ECharts外部调用保存为图片操作及工作流接线mouseenter和mouseleave)
2016/08/29 Javascript
Angular2搜索和重置按钮过场动画
2017/05/24 Javascript
Angular js 实现添加用户、修改密码、敏感字、下拉菜单的综合操作方法
2017/10/24 Javascript
浅谈React中组件间抽象
2018/01/27 Javascript
关于JSON解析的实现过程解析
2019/10/08 Javascript
vue实践---vue不依赖外部资源实现简单多语操作
2020/09/21 Javascript
Python中类型关系和继承关系实例详解
2015/05/25 Python
python3读取excel文件只提取某些行某些列的值方法
2018/07/10 Python
Python 访问限制 private public的详细介绍
2018/10/16 Python
详解Python3除法之真除法、截断除法和下取整对比
2019/05/23 Python
Django中使用 Closure Table 储存无限分级数据
2019/06/06 Python
python getopt模块使用实例解析
2019/12/18 Python
Python转换itertools.chain对象为数组的方法
2020/02/07 Python
python输出pdf文档的实例
2020/02/13 Python
英语师范专业毕业生自荐信
2013/09/21 职场文书
《画杨桃》教学反思
2014/04/13 职场文书
办公室文员岗位职责
2015/02/04 职场文书
体育个人工作总结
2015/02/09 职场文书
2016大一新生军训感言
2015/12/08 职场文书
python中print格式化输出的问题
2021/04/16 Python
一行代码python实现文件共享服务器
2021/04/22 Python
关于Vue中的options选项
2022/03/22 Vue.js