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判断是否为数组的函数: isArray()
Oct 30 Javascript
javascript判断复选框是否选中的方法
Oct 16 Javascript
Bootstrap按钮功能之查询按钮和重置按钮
Oct 26 Javascript
Bootstrap风格的zTree右键菜单
Feb 17 Javascript
Bootstrap进度条与AJAX后端数据传递结合使用实例详解
Apr 23 Javascript
基于vue.js路由参数的实例讲解——简单易懂
Sep 07 Javascript
微信小程序访问豆瓣电影api的实现方法
Mar 31 Javascript
微信网页登录逻辑与实现方法
Apr 29 Javascript
layui 点击重置按钮, select 并没有被重置的解决方法
Sep 03 Javascript
Vue实现渲染数据后控制滚动条位置(推荐)
Dec 09 Javascript
在nuxt中使用路由重定向的实例
Nov 06 Javascript
一分钟学会JavaScript中的try-catch
Dec 14 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
yii2.0实现创建简单widgets示例
2016/07/18 PHP
mac系统下为 php 添加 pcntl 扩展
2016/08/28 PHP
yii2学习教程之5种内置行为类详解
2017/08/03 PHP
PHP各种常见经典算法总结【排序、查找、翻转等】
2019/08/05 PHP
一份老外写的XMLHttpRequest代码多浏览器支持兼容性
2007/01/11 Javascript
Firebug入门指南(Firefox浏览器)
2010/08/21 Javascript
javascript温习的一些笔记 基础常用知识小结
2011/06/22 Javascript
jquery特效 幻灯片效果示例代码
2013/07/16 Javascript
js用闭包遍历树状数组的方法
2014/03/19 Javascript
javascript实现的一个随机点名功能
2014/08/26 Javascript
jQuery提示插件alertify使用指南
2015/04/21 Javascript
AngularJS模仿Form表单提交的实现代码
2016/12/08 Javascript
基于vue实现分页/翻页组件paginator示例
2017/03/09 Javascript
详解基于node的前端项目编译时内存溢出问题
2017/08/01 Javascript
Node.js学习之查询字符串解析querystring详解
2017/09/28 Javascript
React-router4路由监听的实现
2018/08/07 Javascript
vue2.0 中使用transition实现动画效果使用心得
2018/08/13 Javascript
解决layer弹层遮罩挡住窗体的问题
2018/08/17 Javascript
Element Steps步骤条的使用方法
2020/07/26 Javascript
深入解析Python中的list列表及其切片和迭代操作
2016/03/13 Python
qpython3 读取安卓lastpass Cookies
2016/06/19 Python
python 出现SyntaxError: non-keyword arg after keyword arg错误解决办法
2017/02/14 Python
基于Python中单例模式的几种实现方式及优化详解
2018/01/09 Python
使用python中的in ,not in来检查元素是不是在列表中的方法
2018/07/06 Python
Python实现批量修改图片格式和大小的方法【opencv库与PIL库】
2018/12/03 Python
Python模拟FTP文件服务器的操作方法
2020/02/18 Python
python GUI库图形界面开发之PyQt5拖放控件实例详解
2020/02/25 Python
Python读取图像并显示灰度图的实现
2020/12/01 Python
numpy实现RNN原理实现
2021/03/02 Python
介绍一下XMLHttpRequest对象的常用方法和属性
2013/05/24 面试题
车辆维修工自我评价怎么写
2013/09/20 职场文书
学生喝酒检讨书500字
2014/11/02 职场文书
2016年中学端午节主题活动总结
2016/04/01 职场文书
pytorch 中nn.Dropout的使用说明
2021/05/20 Python
TV动画「神渣☆爱豆」公开第一弹主视觉图
2022/03/21 日漫
MySQL远程无法连接的一些常见原因总结
2022/09/23 MySQL