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 相关文章推荐
ASP.NET jQuery 实例13 原创jQuery文本框字符限制插件-TextArea Counter
Feb 03 Javascript
Java/JS获取flash高宽的具体方法
Dec 27 Javascript
js创建对象的方式总结
Jan 10 Javascript
jQuery实现MSN中文网滑动Tab菜单效果代码
Sep 09 Javascript
深入解析JavaScript框架Backbone.js中的事件机制
Feb 14 Javascript
原生JS简单实现ajax的方法示例
Nov 29 Javascript
jQuery展示表格点击变色、全选、删除
Jan 05 Javascript
JS实现的五级联动菜单效果完整实例
Feb 23 Javascript
ES6正则表达式扩展笔记
Jul 25 Javascript
详解angularjs实现echart图表效果最简洁教程
Nov 29 Javascript
jQuery实现B2B网站后台管理系统侧导航
Jul 08 jQuery
详解Java中String JSONObject JSONArray List转换
Nov 13 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 程式大小
2006/12/06 PHP
PHP发明人谈MVC和网站设计架构 貌似他不支持php用mvc
2011/06/04 PHP
详解Laravel视图间共享数据与视图Composer
2016/08/04 PHP
PHP实现腾讯与百度坐标转换
2017/08/05 PHP
laravel框架select2多选插件初始化默认选中项操作示例
2020/02/18 PHP
使用TextRange获取输入框中光标的位置的代码
2007/03/08 Javascript
关于jQuery新的事件绑定机制on()的使用技巧
2013/04/26 Javascript
JS实现向表格中动态添加行的方法
2015/03/30 Javascript
canvas实现手机端用来上传用户头像的代码
2016/10/20 Javascript
Jquery EasyUI $.Parser
2017/06/02 jQuery
浅谈js基础数据类型和引用类型,深浅拷贝问题,以及内存分配问题
2017/09/02 Javascript
nodejs实现的简单web服务器功能示例
2018/03/15 NodeJs
jQuery pagination分页示例详解
2018/10/23 jQuery
ionic+html5+API实现双击返回键退出应用
2019/09/17 Javascript
VUEX采坑之路之获取不到$store的解决方法
2019/11/08 Javascript
Python3.5.3下配置opencv3.2.0的操作方法
2018/04/02 Python
python3.4爬虫demo
2019/01/22 Python
Python快速转换numpy数组中Nan和Inf的方法实例说明
2019/02/21 Python
Python使用线程来接收串口数据的示例
2019/07/02 Python
python实现逆滤波与维纳滤波示例
2020/02/26 Python
Python 字典一个键对应多个值的方法
2020/09/29 Python
可自定义箭头样式的CSS3气泡提示框
2016/03/16 HTML / CSS
浅谈css3新单位vw、vh、vmin、vmax的使用详解
2017/12/01 HTML / CSS
HTML5拖拽功能实现的拼图游戏
2018/07/31 HTML / CSS
亚马逊墨西哥站:Amazon.com.mx
2018/08/26 全球购物
Farfetch美国:奢侈品牌时尚购物平台
2019/05/02 全球购物
中学生团员自我评价分享
2013/12/07 职场文书
学生励志演讲稿
2014/01/06 职场文书
文明倡议书范文
2014/04/15 职场文书
2014年政协工作总结
2014/12/09 职场文书
社区文明倡议书
2015/04/28 职场文书
《詹天佑》教学反思
2016/02/20 职场文书
好段摘抄大全(48句)
2019/08/08 职场文书
element多个表单校验的实现
2021/05/27 Javascript
浅谈MySQL 亿级数据分页的优化
2021/06/15 MySQL
Java数组与堆栈相关知识总结
2021/06/29 Java/Android