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 相关文章推荐
JavaScript的parseInt 进制问题
May 07 Javascript
用JavaScript计算在UTF-8下存储字符串占用字节数
Aug 08 Javascript
浅析jQuery(function(){})与(function(){})(jQuery)之间的区别
Jan 09 Javascript
jQuery实现异步获取json数据的2种方式
Aug 29 Javascript
javascript中字符串拼接详解
Sep 26 Javascript
Javascript显示和隐藏ul列表的方法
Jul 15 Javascript
jquery 遍历数组 each 方法详解
May 25 Javascript
js控件Kindeditor实现图片自动上传功能
Jul 20 Javascript
基于vue中keep-alive缓存问题的解决方法
Sep 21 Javascript
用npm安装vue和vue-cli,并使用webpack创建项目的方法
Sep 28 Javascript
详解vue 在移动端体验上的优化解决方案
May 20 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 UTF8 文件的签名问题
2009/10/30 PHP
使用Curl进行抓取远程内容时url中文编码问题示例探讨
2013/10/29 PHP
PHP解码unicode编码的中文字符代码分享
2014/08/13 PHP
php数组转成json格式的方法
2015/03/09 PHP
Javascript-Mozilla和IE中的一个函数直接量的问题
2007/01/09 Javascript
新老版本juqery获取radio对象的方法
2010/03/01 Javascript
JS+CSS制作DIV层可(最小化/拖拽/排序)功能实现代码
2013/02/25 Javascript
jquery中的ajax方法怎样通过JSONP进行远程调用
2014/05/04 Javascript
jquery处理json数据实例分析
2014/06/03 Javascript
JQuery中模拟image的ajaxPrefilter与ajaxTransport处理
2015/06/19 Javascript
JavaScript的Ext JS框架中的GridPanel组件使用指南
2016/05/21 Javascript
基于 Vue 的树形选择组件的示例代码
2017/08/18 Javascript
详解Vue-cli中的静态资源管理(src/assets和static/的区别)
2018/06/19 Javascript
详解webpack+ES6+Sass搭建多页面应用
2018/11/05 Javascript
CKeditor4 字体颜色功能配置方法教程
2019/06/26 Javascript
element-ui 远程搜索组件el-select在项目中组件化的实现代码
2019/12/04 Javascript
ES6学习笔记之let与const用法实例分析
2020/01/22 Javascript
mustache.js实现首页元件动态渲染的示例代码
2020/12/28 Javascript
Python最基本的输入输出详解
2015/04/25 Python
Python算法输出1-9数组形成的结果为100的所有运算式
2017/11/03 Python
python实现维吉尼亚算法
2019/03/20 Python
Python如何基于smtplib发不同格式的邮件
2019/12/30 Python
tensorflow:指定gpu 限制使用量百分比,设置最小使用量的实现
2020/02/06 Python
Python要求O(n)复杂度求无序列表中第K的大元素实例
2020/04/02 Python
一款利用css3的鼠标经过动画显示详情特效的实例教程
2014/12/29 HTML / CSS
Html5调用手机摄像头并实现人脸识别的实现
2018/12/21 HTML / CSS
Ellos瑞典官网:北欧地区时尚、美容和住宅领域领先的电子商务网站
2019/11/21 全球购物
市场营销毕业生自荐信范文
2014/04/01 职场文书
商业街策划方案
2014/05/31 职场文书
酒店人事主管岗位职责
2015/04/11 职场文书
文明旅游倡议书
2015/04/28 职场文书
团委副书记工作总结
2015/08/14 职场文书
教师学习十八届五中全会精神心得体会
2016/01/05 职场文书
详解Python牛顿插值法
2021/05/11 Python
pytorch 运行一段时间后出现GPU OOM的问题
2021/06/02 Python
疑《守望先锋2》A测截图泄露 或将推出新模式、新界面
2022/04/03 其他游戏