JS全角与半角转化实例(分享)


Posted in Javascript onJuly 04, 2017

最近在做PC端网站的页面的一个表单校验,需要把全角输入转化成半角符号。之前没有了解过这些编码的知识,还是得Google一下查查资料,故简单总结一下。

什么是全角、半角

传统上,英语或拉丁字母语言使用的电脑系统,每一个字母或符号,都是使用一字节的空间(一字节由8比特组成,共256个编码空间)来储存;而汉语、日语及韩语文字,由于数量大大超过256个,故惯常使用两字节来储存一个字符。在使用等宽字体(如DOS、部分文字编辑器等)的环境下,中日韩文字此时占据两倍于西文字符的显示宽度。所以,中、日、韩等文字称为全角字符,相比起来,拉丁字母或数字就称为半角字符。有时为了使字体看起来齐整,英文字母、数字及其他符号也由原来只占一个字空间,改为占用两个字的空间显示、使用两个字节储存的格式。(维基百科)

转化原理

全角空格unicode编码为12288,半角空格为32

其他字符半角(33-126)与全角(65281-65374)的unicode编码对应关系是:均相差65248

全角转半角

function ToCDB(str) {
    var tmp = "";
    for (var i = 0; i < str.length; i++) {
      if (str.charCodeAt(i) > 65248 && str.charCodeAt(i) < 65375) {
        tmp += String.fromCharCode(str.charCodeAt(i) - 65248);
      }
      else {
        tmp += String.fromCharCode(str.charCodeAt(i));
      }
    }
    return tmp
  }

半角转全角

function ToDBC(txtstring) {
    var tmp = "";
    for (var i = 0; i < txtstring.length; i++) {
      if (txtstring.charCodeAt(i) == 32) {
        tmp = tmp + String.fromCharCode(12288);
      }
      if (txtstring.charCodeAt(i) < 127) {
        tmp = tmp + String.fromCharCode(txtstring.charCodeAt(i) + 65248);
      }
    }
    return tmp;
  }

以上这篇JS全角与半角转化实例(分享)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js字符串转换成xml对象并使用技巧解读
Apr 18 Javascript
JQuery设置和去除disabled属性的5种方法总结
May 16 Javascript
Iframe 自动适应页面的高度示例代码
Feb 26 Javascript
Node.js中require的工作原理浅析
Jun 24 Javascript
HTML5+jQuery插件Quicksand实现超酷的星际争霸2兵种分类展示效果(附demo源码下载)
May 25 Javascript
BootStrap Datetimepicker 汉化的实现代码
Feb 10 Javascript
vue mintui-Loadmore结合实现下拉刷新和上拉加载示例
Oct 12 Javascript
vue中实现滚动加载更多的示例
Nov 08 Javascript
Angular实现的table表格排序功能完整示例
Dec 22 Javascript
JavaScript实现预览本地上传图片功能完整示例
Mar 08 Javascript
原生javascript中this几种常见用法总结
Feb 24 Javascript
Vue——前端生成二维码的示例
Dec 19 Vue.js
详解如何提高 webpack 构建 Vue 项目的速度
Jul 03 #Javascript
vue.js源代码core scedule.js学习笔记
Jul 03 #Javascript
lhgcalendar时间插件限制只能选择三个月的实现方法
Jul 03 #Javascript
JavaScript生成图形验证码
Aug 24 #Javascript
JS滚动到指定位置导航栏固定顶部
Jul 03 #Javascript
mac上node.js环境的安装测试
Jul 03 #Javascript
关于页面刷新vuex数据消失问题解决方案
Jul 03 #Javascript
You might like
PHP HTML代码串 截取实现代码
2009/06/29 PHP
php 数组使用详解 推荐
2011/06/02 PHP
使用ThinkPHP的自动完成实现无限级分类实例详解
2016/09/02 PHP
php版微信公众号接口实现发红包的方法
2016/10/14 PHP
php常用日期时间函数实例小结
2019/07/04 PHP
YII2框架中日志的配置与使用方法实例分析
2020/03/18 PHP
PHP操作Redis常用命令的实例详解
2020/12/23 PHP
Array.slice()与Array.splice()的返回值类型
2006/10/09 Javascript
用javascript实现画板的代码
2007/09/05 Javascript
jQuery实现鼠标移到元素上动态提示消息框效果
2013/10/20 Javascript
如何获取网站icon有哪些可行的方法
2014/06/05 Javascript
JS实现5秒钟自动封锁div层的方法
2015/02/20 Javascript
javascript关于open.window子页面执行完成后刷新父页面的问题分析
2015/04/27 Javascript
JS实现的车标图片提示效果代码
2015/10/10 Javascript
js去字符串前后空格的实现方法
2016/02/26 Javascript
JavaScript地理位置信息API
2016/06/11 Javascript
AngularJS入门教程之过滤器用法示例
2016/11/02 Javascript
js实现百度搜索提示框
2017/02/05 Javascript
jQuery快速实现商品数量加减的方法
2017/02/06 Javascript
jQuery自动或手动图片切换效果
2017/10/11 jQuery
vue实现固定位置显示功能
2019/05/30 Javascript
Vue实现点击箭头上下移动效果
2020/06/11 Javascript
js闭包和垃圾回收机制示例详解
2021/03/01 Javascript
[34:10]Secret vs VG 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.24
2019/09/10 DOTA
Python cookbook(数据结构与算法)保存最后N个元素的方法
2018/02/13 Python
Python实现的旋转数组功能算法示例
2019/02/23 Python
Python实现去除图片中指定颜色的像素功能示例
2019/04/13 Python
pyinstaller还原python代码过程图解
2020/01/08 Python
Django Path转换器自定义及正则代码实例
2020/05/29 Python
PyCharm 光标变成黑块的解决方式
2021/02/06 Python
HTML5 video 事件应用示例
2014/09/11 HTML / CSS
Laura Geller官网:美国彩妆品牌
2018/12/29 全球购物
演讲稿格式
2014/04/30 职场文书
出国留学英文自荐信
2015/03/25 职场文书
消防宣传标语大全
2015/08/03 职场文书
诉讼和解协议书
2016/03/23 职场文书