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 相关文章推荐
Js 弹出框口并返回值的两种常用方法
Dec 30 Javascript
探讨JQUERY JSON的反序列化类 using问题的解决方法
Dec 19 Javascript
JQuery记住用户名和密码的具体实现
Apr 04 Javascript
JS中getYear()和getFullYear()区别分析
Jul 04 Javascript
Node.js开源应用框架HapiJS介绍
Jan 14 Javascript
js实现的万能flv网页播放器代码
Apr 30 Javascript
基于Layer+jQuery的自定义弹框
May 26 Javascript
微信小程序实现发红包功能
Jul 11 Javascript
浅谈js闭包理解
Apr 01 Javascript
Vue常用传值方式、父传子、子传父及非父子实例分析
Feb 24 Javascript
javascript实现扫雷简易版
Aug 18 Javascript
Javascript的promise,async和await的区别详解
Mar 24 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读取大文件的类SplFileObject使用介绍
2014/04/09 PHP
简介PHP的Yii框架中缓存的一些高级用法
2016/03/29 PHP
PHP实现bitmap位图排序与求交集的方法
2016/07/28 PHP
PHP生成(支持多模板)二维码海报代码
2018/04/30 PHP
PHP7中I/O模型内核剖析详解
2019/04/14 PHP
jquery获取css中的选择器(实例讲解)
2013/12/02 Javascript
jQuery添加删除DOM元素方法详解
2016/01/18 Javascript
基于bootstrap风格的弹框插件
2016/12/28 Javascript
jQuery弹出层插件popShow用法示例
2017/01/23 Javascript
javascript深拷贝的原理与实现方法分析
2017/04/10 Javascript
js实现文字列表无缝滚动效果
2017/06/23 Javascript
Kindeditor单独调用单图上传增加预览功能的实例
2017/07/31 Javascript
jQuery绑定事件方法及区别(bind,click,on,live,one)
2017/08/14 jQuery
分析JS单线程异步io回调的特性
2017/12/01 Javascript
深入解析vue 源码目录及构建过程分析
2019/04/24 Javascript
微信小程序实现星级评价
2019/11/20 Javascript
微信小程序收藏功能的实现代码
2020/06/19 Javascript
浅谈在vue-cli3项目中解决动态引入图片img404的问题
2020/08/04 Javascript
微信小程序实现点击页面出现文字
2020/09/21 Javascript
python使用装饰器和线程限制函数执行时间的方法
2015/04/18 Python
利用Python实现原创工具的Logo与Help
2018/12/03 Python
Python 操作mysql数据库查询之fetchone(), fetchmany(), fetchall()用法示例
2019/10/17 Python
Python 3.8 新功能大揭秘【新手必学】
2020/02/05 Python
Python 列表推导式需要注意的地方
2020/10/23 Python
Python getsizeof()和getsize()区分详解
2020/11/20 Python
python实现马丁策略的实例详解
2021/01/15 Python
pandas map(),apply(),applymap()区别解析
2021/02/24 Python
CSS3 animation实现简易幻灯片轮播特效
2016/09/27 HTML / CSS
H5 meta小结(前端必看篇)
2016/08/24 HTML / CSS
俄罗斯电子产品、计算机和家用电器购物网站:OLDI
2019/10/27 全球购物
美国优质宠物用品购买网站:Muttropolis
2020/02/17 全球购物
电子商务专业学生的学习自我评价
2013/10/27 职场文书
管理科学大学生求职信
2013/11/13 职场文书
建筑工程技术应届生求职信
2013/11/17 职场文书
可贵的沉默教学反思
2014/02/06 职场文书
Sql Server 行数据的某列值想作为字段列显示的方法
2022/04/20 SQL Server