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 url传值中文乱码之解决之道
Nov 20 Javascript
Jquery显示、隐藏元素以及添加删除样式
Aug 09 Javascript
js获取url中的参数且参数为中文时通过js解码
Mar 19 Javascript
js实现瀑布流的三种方式比较
Jun 28 Javascript
JavaScript来实现打开链接页面的简单实例
Jun 02 Javascript
第一篇初识bootstrap
Jun 21 Javascript
Json对象和字符串互相转换json数据拼接和JSON使用方式详细介绍(小结)
Oct 25 Javascript
js canvas仿支付宝芝麻信用分仪表盘
Nov 16 Javascript
Node.js+Express+MySql实现用户登录注册功能
Jul 10 Javascript
VUE实现一个分页组件的示例
Sep 13 Javascript
vue 过滤器filter实例详解
Mar 14 Javascript
electron-vue开发环境内存泄漏问题汇总
Oct 10 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单例模式实现(对象只被创建一次)
2012/12/05 PHP
Thinkphp中数据按分类嵌套循环实现方法
2014/10/30 PHP
PHP中实现接收多个name相同但Value不相同表单数据实例
2015/02/03 PHP
php结合ACCESS的跨库查询功能
2015/06/12 PHP
gearman中worker常驻后台,导致MySQL server has gone away的解决方法
2020/02/27 PHP
javascript验证上传文件的类型限制必须为某些格式
2013/11/14 Javascript
node.js中的fs.symlink方法使用说明
2014/12/15 Javascript
JS实现浏览器状态栏文字闪烁效果的方法
2015/10/27 Javascript
JavaScript开发Chrome浏览器扩展程序UI的教程
2016/05/16 Javascript
jQuery ajax全局函数处理session过期后的ajax跳转问题
2016/06/03 Javascript
实例解析js中try、catch、finally的执行规则
2017/02/24 Javascript
jQuery插件FusionWidgets实现的AngularGauge图效果示例【附demo源码】
2017/03/23 jQuery
详解基于webpack搭建react运行环境
2017/06/01 Javascript
详解使用Typescript开发node.js项目(简单的环境配置)
2017/10/09 Javascript
使用nvm管理不同版本的node与npm的方法
2017/10/31 Javascript
jQuery EasyUI 选项卡面板tabs的使用实例讲解
2017/12/25 jQuery
解析Angular 2+ 样式绑定方式
2018/01/15 Javascript
浅谈Vue Element中Select下拉框选取值的问题
2018/03/01 Javascript
javascript实现文件拖拽事件
2018/03/29 Javascript
js中的 || 与 &amp;&amp; 运算符详解
2018/05/24 Javascript
javascript操作元素的常见方法小结
2019/11/13 Javascript
vuex刷新后数据丢失的解决方法
2020/10/18 Javascript
[04:16]DOTA2英雄梦之声_第09期_斧王
2014/06/21 DOTA
[54:26]完美世界DOTA2联赛PWL S3 Forest vs Rebirth 第一场 12.10
2020/12/12 DOTA
Python制作刷网页流量工具
2017/04/23 Python
python接口自动化(十六)--参数关联接口后传(详解)
2019/04/16 Python
Python hashlib模块加密过程解析
2019/11/05 Python
Keras搭建自编码器操作
2020/07/03 Python
小学教师的个人自我鉴定
2013/10/26 职场文书
街道党工委党的群众路线教育实践活动对照检查材料思想汇报
2014/10/05 职场文书
工人先锋号事迹材料
2014/12/24 职场文书
汽车质检员岗位职责
2015/04/08 职场文书
张丽莉观后感
2015/06/16 职场文书
python基础之while循环语句的使用
2021/04/20 Python
如何使用JavaScript策略模式校验表单
2021/04/29 Javascript
Java数据结构之链表相关知识总结
2021/06/18 Java/Android