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 相关文章推荐
JSON 客户端和服务器端的格式转换
Aug 27 Javascript
10款新鲜出炉的 jQuery 插件(Ajax 插件,有幻灯片、图片画廊、菜单等)
Jun 08 Javascript
js正则匹配出所有图片及图片地址src的方法
Jun 08 Javascript
Bootstrap中的Dropdown下拉菜单更改为悬停(hover)触发
Aug 31 Javascript
实现点击下箭头变上箭头来回切换的两种方法【推荐】
Dec 14 Javascript
如何实现星星评价(jquery.raty.js插件)
Dec 21 Javascript
详解vue移动端日期选择组件
Feb 22 Javascript
Vue.js实现的表格增加删除demo示例
May 22 Javascript
layui问题之模拟select点击事件的实例讲解
Aug 15 Javascript
使用JS获取页面上的所有标签
Oct 18 Javascript
浅谈KOA2 Restful方式路由初探
Mar 14 Javascript
利用JavaScript写一个简单计算器
Nov 27 Javascript
详解如何提高 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
phpmyadmin里面导入sql语句格式的大量数据的方法
2010/06/05 PHP
学习php设计模式 php实现享元模式(flyweight)
2015/12/07 PHP
JavaScript confirm选择判断
2008/10/18 Javascript
JQuery扩展插件Validate 1 基本使用方法并打包下载
2011/09/05 Javascript
jquery.messager.js插件导致页面抖动的解决方法
2013/07/14 Javascript
JS控制图片翻转示例代码(兼容firefox,ie,chrome)
2013/12/19 Javascript
js+jquery实现图片裁剪功能
2015/01/02 Javascript
[原创]Javascript 实现广告后加载 可加载百度谷歌联盟广告
2016/05/11 Javascript
实例解析jQuery中如何取消后续执行内容
2016/12/01 Javascript
Angularjs之如何在跨域请求中传输Cookie的方法
2018/06/01 Javascript
vue做移动端适配最佳解决方案(亲测有效)
2018/09/04 Javascript
原生JS实现轮播图效果
2018/10/12 Javascript
详解JavaScript栈内存与堆内存
2019/04/04 Javascript
vue中el-input绑定键盘按键(按键修饰符)
2020/07/22 Javascript
javascript前端实现多视频上传
2020/12/13 Javascript
Python实现多线程HTTP下载器示例
2017/02/11 Python
详解Python里使用正则表达式的ASCII模式
2017/11/02 Python
Python3安装Scrapy的方法步骤
2017/11/23 Python
Python实现的直接插入排序算法示例
2018/04/29 Python
不知道这5种下划线的含义,你就不算真的会Python!
2018/10/09 Python
python实现支付宝转账接口
2019/05/07 Python
python射线法判断检测点是否位于区域外接矩形内
2019/06/28 Python
解决Django删除migrations文件夹中的文件后出现的异常问题
2019/08/31 Python
Pycharm中Python环境配置常见问题解析
2020/01/16 Python
如何在Python 游戏中模拟引力
2020/03/27 Python
世界领先的以旅馆为主的在线预订平台:Hostelworld
2016/10/09 全球购物
赫里福德的一家乡村零售商店:Philip Morris & Son
2017/06/25 全球购物
Lucene推荐的分页方式是什么?
2015/12/07 面试题
迎七一演讲稿
2014/09/12 职场文书
党员个人党性分析材料
2014/12/18 职场文书
小学科学教学计划
2015/01/21 职场文书
魂断蓝桥观后感
2015/06/10 职场文书
婚庆主持词大全
2015/06/30 职场文书
观看《信仰》心得体会
2016/01/15 职场文书
女人创业励志语录,句句蕴含能量,激发你的潜能
2019/08/20 职场文书
Python中使用ipython的详细教程
2021/06/22 Python