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 相关文章推荐
ASP 过滤数组重复数据函数(加强版)
May 31 Javascript
IE6浏览器下resize事件被执行了多次解决方法
Dec 11 Javascript
Node.js安装教程和NPM包管理器使用详解
Aug 16 Javascript
Node.js实现批量去除BOM文件头
Dec 20 Javascript
JavaScript 常见安全漏洞和自动化检测技术
Aug 21 Javascript
Jquery为DIV添加click事件的简单实例
Jun 02 Javascript
jquery滚动条插件slimScroll使用方法
Feb 09 Javascript
vue表单绑定实现多选框和下拉列表的实例
Aug 12 Javascript
Javascript中JSON数据分组优化实践及JS操作JSON总结
Dec 22 Javascript
AngularJS发送异步Get/Post请求方法
Aug 13 Javascript
后台使用freeMarker和前端使用vue的方法及遇到的问题
Jun 13 Javascript
js对象属性名驼峰式转下划线的实例代码
Sep 17 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中isset()和unset()函数的用法小结
2014/03/11 PHP
PHP中数组的分组排序实例
2014/06/01 PHP
php魔术函数__call()用法实例分析
2015/02/13 PHP
php修改文件上传限制方法汇总
2015/04/07 PHP
php分割合并两个字符串的函数实例
2015/06/19 PHP
php-fpm添加service服务的例子
2018/04/27 PHP
Javascript miscellanea -display data real time, using window.status
2007/01/09 Javascript
JQuery Study Notes 学习笔记(一)
2010/08/04 Javascript
在新窗口打开超链接的方法小结
2013/04/14 Javascript
细说javascript函数从函数的构成开始
2013/08/29 Javascript
整理的比较全的event对像在ie与firefox浏览器中的区别
2013/11/25 Javascript
JS小功能(列表页面隔行变色)简单实现
2013/11/28 Javascript
jquery实现表单验证并阻止非法提交
2015/07/09 Javascript
深入探讨前端框架react
2015/12/09 Javascript
详解Vue自定义过滤器的实现
2017/01/10 Javascript
JavaScript实现简单精致的图片左右无缝滚动效果
2017/03/16 Javascript
AngularJS+Bootstrap3多级导航菜单的实现代码
2017/08/16 Javascript
VUE2.0+Element-UI+Echarts封装的组件实例
2018/03/02 Javascript
深入理解Vue 组件之间传值
2018/08/16 Javascript
浅谈在vue中使用mint-ui swipe遇到的问题
2018/09/27 Javascript
nodejs require js文件入口,在package.json中指定默认入口main方法
2018/10/10 NodeJs
浅谈Vue.js之初始化el以及数据的绑定说明
2019/11/14 Javascript
Vue + Node.js + MongoDB图片上传组件实现图片预览和删除功能详解
2020/04/29 Javascript
在vue-cli3中使用axios获取本地json操作
2020/07/30 Javascript
Python urllib模块urlopen()与urlretrieve()详解
2013/11/01 Python
Python csv模块使用方法代码实例
2019/08/29 Python
Python从文件中读取数据的方法步骤
2020/11/18 Python
Levi’s美国官网:美国著名的牛仔裤品牌
2016/08/19 全球购物
美国首屈一指的礼品篮供应商:GiftTree
2018/01/06 全球购物
乌克兰网上珠宝商店:GoldSoveren
2020/03/31 全球购物
什么是smarty? Smarty的优点是什么?
2013/08/11 面试题
介绍一下linux的文件权限
2014/07/20 面试题
计算机应用专业自荐信
2014/07/05 职场文书
消夏晚会主持词
2015/06/30 职场文书
详解如何修改nginx的默认端口
2021/03/31 Servers
解决MySQL添加新用户-ERROR 1045 (28000)的问题
2022/03/03 MySQL