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 相关文章推荐
页面只有一个text的时候,回车自动submit的解决方法
Aug 12 Javascript
JavaScript中的this实例分析
Apr 28 Javascript
javascript中的return和闭包函数浅析
Jun 06 Javascript
jQuery自带的一些常用方法总结
Sep 03 Javascript
使用jQuery中的wrap()函数操作HTML元素的教程
May 24 Javascript
jQuery EasyUI编辑DataGrid用combobox实现多级联动
Aug 29 Javascript
微信公众平台开发教程(六)获取个性二维码的实例
Dec 02 Javascript
JS基于正则截取替换特定字符之间字符串操作示例
Feb 03 Javascript
基于hover的用法实例(推荐)
Jul 04 Javascript
jQuery 循环遍历改变a标签的href(实例讲解)
Jul 12 jQuery
解决npm管理员身份install时出现权限的问题
Mar 16 Javascript
jQuery实现数字自动增加或者减少的动画效果示例
Dec 11 jQuery
自己封装的常用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世纪万年历
2006/12/06 PHP
介绍一些PHP判断变量的函数
2012/04/24 PHP
使用PHP和HTML5 FormData实现无刷新文件上传教程
2014/09/06 PHP
php实现微信公众平台账号自定义菜单类
2014/12/02 PHP
thinkPHP5框架中widget的功能与用法详解
2018/06/11 PHP
phpstudy隐藏index.php的方法
2020/09/21 PHP
js判断两个日期是否相等的方法
2013/09/10 Javascript
[原创]推荐10款最热门jQuery UI框架
2014/08/19 Javascript
Jquery注册事件实现方法
2015/05/18 Javascript
向JavaScript的数组中添加元素的方法小结
2015/10/24 Javascript
Angular中$compile源码分析
2016/01/28 Javascript
JS控制div跳转到指定的位置的几种解决方案总结
2016/11/05 Javascript
javascript实现无法关闭的弹框
2016/11/27 Javascript
js实现截图保存图片功能的代码示例
2017/02/16 Javascript
ECMAScript6--解构
2017/03/30 Javascript
Vue源码学习之初始化模块init.js解析
2017/11/02 Javascript
vue 中filter的多种用法
2018/04/26 Javascript
node前端模板引擎Jade之标签的基本写法
2018/05/11 Javascript
详解写好JS条件语句的5条守则
2019/02/28 Javascript
js图片查看器插件用法示例
2019/06/22 Javascript
微信小程序实现图片压缩
2019/12/03 Javascript
Vue如何获取数据列表展示
2019/12/11 Javascript
JS中的变量作用域(console版)
2020/07/18 Javascript
Python3读取UTF-8文件及统计文件行数的方法
2015/05/22 Python
TF-IDF与余弦相似性的应用(二) 找出相似文章
2017/12/21 Python
使用celery执行Django串行异步任务的方法步骤
2019/06/06 Python
利用selenium爬虫抓取数据的基础教程
2019/06/10 Python
详解pyinstaller生成exe的闪退问题解决方案
2020/06/19 Python
sublime3之内网安装python插件Anaconda的流程
2020/11/10 Python
Clarks鞋法国官方网站:英国其乐鞋品牌
2018/02/11 全球购物
打架检讨书2000字
2014/02/22 职场文书
教导主任竞聘演讲稿
2014/05/16 职场文书
英语教师自荐信
2014/05/26 职场文书
班主任工作总结范文
2015/08/13 职场文书
初三化学教学反思
2016/02/22 职场文书
PHP实现rar解压读取扩展包小结
2021/06/03 PHP