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判断变量是否空值的代码
Oct 26 Javascript
jquery cookie插件代码类
May 26 Javascript
input的focus方法使用
Mar 13 Javascript
javascript中的关于类型转换的性能优化
Dec 14 Javascript
js列举css中所有图标的实现代码
Jul 04 Javascript
ReactNative中使用Redux架构总结
Dec 15 Javascript
详解Webpack+Babel+React开发环境的搭建的方法步骤
Jan 09 Javascript
解决在vue项目中,发版之后,背景图片报错,路径不对的问题
Mar 06 Javascript
Vuex新手的理解与使用详解
May 31 Javascript
浅谈vue-router路由切换 组件重用挖下的坑
Nov 01 Javascript
node.js基于dgram数据报模块创建UDP服务器和客户端操作示例
Feb 12 Javascript
Vue深入理解插槽slot的使用
Aug 05 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
无线电广播的开始
2002/01/30 无线电
PHP生成网页快照 不用COM不用扩展.
2010/02/11 PHP
php生成N个不重复的随机数实例
2013/11/12 PHP
ajax无刷新动态调用股票信息(改良版)
2008/11/01 Javascript
js数字输入框(包括最大值最小值限制和四舍五入)
2009/11/24 Javascript
关于JS控制代码暂停的实现方法分享
2012/10/11 Javascript
JavaScript 语言基础知识点总结(思维导图)
2013/11/10 Javascript
详解JavaScript ES6中的Generator
2015/07/28 Javascript
jquery模拟alert的弹窗插件
2015/07/31 Javascript
基于HTML5上使用iScroll实现下拉刷新,上拉加载更多
2016/05/21 Javascript
Bootstrap零基础学习第一课之模板
2016/07/18 Javascript
基于jQuery实现表格的查看修改删除
2016/08/01 Javascript
js判断价格,必须为数字且不能为负数的实现方法
2016/10/07 Javascript
jQuery常见面试题之DOM操作详析
2017/07/05 jQuery
AngularJS常见过滤器用法实例总结
2017/07/06 Javascript
基于JS实现移动端左滑删除功能
2017/07/28 Javascript
JavaScript数据结构之双向链表定义与使用方法示例
2017/10/27 Javascript
微信小程序开发之自定义tabBar的实现
2018/09/06 Javascript
Python基础教程之tcp socket编程详解及简单实例
2017/02/23 Python
简单实现python收发邮件功能
2018/01/05 Python
浅谈flask中的before_request与after_request
2018/01/20 Python
python实现画圆功能
2018/01/25 Python
Linux CentOS Python开发环境搭建教程
2018/11/28 Python
PyTorch中Tensor的拼接与拆分的实现
2019/08/18 Python
Python3实现发送邮件和发送短信验证码功能
2020/01/07 Python
pycharm无法导入本地模块的解决方式
2020/02/12 Python
西班牙宠物用品和食品网上商店:Tiendanimal
2019/06/06 全球购物
工作失误检讨书范文大全
2014/01/13 职场文书
员工考核评语大全
2014/04/26 职场文书
禁烟标语大全
2014/06/11 职场文书
国家奖学金获奖感言
2014/08/16 职场文书
布达拉宫的导游词
2015/02/02 职场文书
历史博物馆观后感
2015/06/05 职场文书
车辆挂靠协议书
2016/03/23 职场文书
大学生奖学金获奖感言(范文)
2019/08/15 职场文书
python实现进度条的多种实现
2021/04/29 Python