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 29 Javascript
Jquery实现的tab效果可以指定默认显示第几页
Oct 16 Javascript
fckeditor粘贴Word时弹出窗口取消的方法
Oct 30 Javascript
理解javascript封装
Feb 23 Javascript
利用bootstrapValidator验证UEditor
Sep 14 Javascript
原生js图片轮播效果实现代码
Oct 19 Javascript
解析JavaScript模仿块级作用域
Dec 29 Javascript
vue使用Axios做ajax请求详解
Jun 07 Javascript
详解Vue组件之间的数据通信实例
Jun 17 Javascript
webpack4 css打包压缩问题的解决
May 18 Javascript
JS实现区分中英文并统计字符个数的方法示例
Jun 09 Javascript
javascript中的this作用域详解
Jul 15 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实现的获取网站备案信息查询代码(360)
2013/09/23 PHP
Laravel 5 框架入门(四)完结篇
2015/04/09 PHP
php实现登录页面的简单实例
2019/09/29 PHP
五个jQuery图片画廊插件 推荐
2011/05/12 Javascript
MooTools 页面滚动浮动层智能定位实现代码
2011/08/23 Javascript
jquery二级导航内容均分的原理及实现
2013/08/13 Javascript
JQ技术实现注册页面带有校验密码强度
2015/07/27 Javascript
在javascript中使用com组件的简单实现方法
2016/08/17 Javascript
js 判断各种数据类型的简单方法(推荐)
2016/08/29 Javascript
AngularJS监听路由的变化示例代码
2016/09/23 Javascript
使用AngularJS编写多选按钮选中时触发指定方法的指令代码详解
2017/07/24 Javascript
JS鼠标3次点击事件实现代码及扩展思路
2017/09/12 Javascript
vue和iview实现Scroll 数据无限滚动功能
2019/10/31 Javascript
使用kbone解决Vue项目同时支持小程序问题
2019/11/08 Javascript
javascript严格模式详解(含严格模式与非严格模式的区别)
2019/11/12 Javascript
使用vue重构资讯页面的实例代码解析
2019/11/26 Javascript
解决antd Form 表单校验方法无响应的问题
2020/10/27 Javascript
nestjs中异常过滤器Exceptionfilter的具体使用
2021/02/07 Javascript
浅析pandas 数据结构中的DataFrame
2019/10/12 Python
Python实现使用dir获取类的方法列表
2019/12/24 Python
Python Django中间件使用原理及流程分析
2020/06/13 Python
Keras中 ImageDataGenerator函数的参数用法
2020/07/03 Python
python实现文件分片上传的接口自动化
2020/11/19 Python
美国最大最全的亚洲购物网站:美国亚米网(Yamibuy)
2020/05/05 全球购物
传播学专业毕业生自荐信
2013/11/04 职场文书
物业管理专业个人的自我评价
2013/11/19 职场文书
公司财务工作总结的自我评价
2013/11/23 职场文书
生日宴会答谢词
2014/01/09 职场文书
网络营销策划方案
2014/06/04 职场文书
党校党性分析材料
2014/12/19 职场文书
事业单位聘任报告
2015/03/02 职场文书
Nginx配置80端口访问8080及项目名地址方法解析
2021/03/31 Servers
JavaScript中MutationObServer监听DOM元素详情
2021/11/27 Javascript
使用Canvas绘制一个游戏人物属性图
2022/03/25 Javascript
Python线程池与GIL全局锁实现抽奖小案例
2022/04/13 Python
Python FuzzyWuzzy实现模糊匹配
2022/04/28 Python