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 相关文章推荐
JQuery.uploadify 上传文件插件的使用详解 for ASP.NET
Jan 22 Javascript
Javascript中的Array数组对象详谈
Mar 03 Javascript
js判断浏览器是否支持html5
Aug 17 Javascript
js实现索引图片切换效果
Nov 21 Javascript
jquery判断checkbox是否选中及改变checkbox状态的实现方法
May 26 Javascript
AngularJS基础 ng-copy 指令实例代码
Aug 01 Javascript
微信小程序 倒计时组件实现代码
Oct 24 Javascript
用JavaScript和jQuery实现瀑布流
Mar 19 Javascript
AngularJs用户输入动态模板XSS攻击示例详解
Apr 21 Javascript
Vue中Quill富文本编辑器的使用教程
Sep 21 Javascript
webstorm+vue初始化项目的方法
Oct 18 Javascript
VUE中使用HTTP库Axios方法详解
Feb 05 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
十天学会php(3)
2006/10/09 PHP
laravel 实现划分admin和home 模块分组
2019/10/15 PHP
jQuery 技巧大全(新手入门篇)
2009/05/12 Javascript
js 禁止选择功能实现代码(兼容IE/Firefox)
2010/04/23 Javascript
jquery实现动态菜单的实例代码
2013/11/28 Javascript
通过js为元素添加多项样式,浏览器全兼容写法
2014/08/30 Javascript
实例分析js和C#中使用正则表达式匹配a标签
2014/11/26 Javascript
微信小程序 教程之列表渲染
2016/10/18 Javascript
JS实现用户注册时获取短信验证码和倒计时功能
2016/10/27 Javascript
浅谈angularjs $http提交数据探索
2017/01/20 Javascript
nodejs 子进程正确的打开方式
2017/07/03 NodeJs
JS实现的简单表单验证功能完整实例
2017/10/14 Javascript
ES6基础之解构赋值(destructuring assignment)
2019/02/21 Javascript
vue项目从node8.x升级到12.x后的问题解决
2019/10/25 Javascript
javascript操作元素的常见方法小结
2019/11/13 Javascript
原生JS实现无缝轮播图片
2020/06/24 Javascript
vue 扩展现有组件的操作
2020/08/14 Javascript
解决vue 使用axios.all()方法发起多个请求控制台报错的问题
2020/11/09 Javascript
[02:38]2018DOTA2亚洲邀请赛赛前采访-VGJ.T
2018/04/03 DOTA
Python中pygame的mouse鼠标事件用法实例
2015/11/11 Python
浅谈pycharm出现卡顿的解决方法
2018/12/03 Python
python实现杨氏矩阵查找
2019/03/02 Python
Python底层封装实现方法详解
2020/01/22 Python
Python实现快速大文件比较代码解析
2020/09/04 Python
SKECHERS官方旗舰店:美国舒适运动休闲品牌
2017/12/22 全球购物
意大利在线药房:Farmacia Loreto Gallo
2019/08/09 全球购物
数控专业个人求职信范文
2014/02/05 职场文书
民主生活会剖析材料
2014/09/30 职场文书
2014年个人工作总结范文
2014/11/07 职场文书
英文感谢信格式
2015/01/21 职场文书
刑事起诉书范文
2015/05/19 职场文书
经营场所证明范本
2015/06/19 职场文书
Python中OpenCV实现简单车牌字符切割
2021/06/11 Python
Python字典的基础操作
2021/11/01 Python
SSM项目使用拦截器实现登录验证功能
2022/01/22 Java/Android
Redis 报错 error:NOAUTH Authentication required
2022/05/15 Redis