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实战之品牌展示列表效果
Apr 10 Javascript
JQuery实现鼠标滚轮滑动到页面节点
Jul 28 Javascript
学习Javascript面向对象编程之封装
Feb 23 Javascript
JS使用eval()动态创建变量的方法
Jun 03 Javascript
JavaScript实现九九乘法表的简单实例
Jun 07 Javascript
基于iscroll.js实现下拉刷新和上拉加载效果
Nov 28 Javascript
解决Vue-cli npm run build生产环境打包,本地不能打开的问题
Sep 20 Javascript
Vue axios全局拦截 get请求、post请求、配置请求的实例代码
Nov 28 Javascript
少女风vue组件库的制作全过程
May 15 Javascript
Element ui 下拉多选时新增一个选择所有的选项
Aug 21 Javascript
jQuery 实现DOM元素拖拽交换位置的实例代码
Jul 14 jQuery
Vue使用路由钩子拦截器beforeEach和afterEach监听路由
Nov 16 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 获取select下拉列表框的值
2010/05/08 PHP
基于php伪静态的实现详细介绍
2013/04/28 PHP
PHP模拟QQ登录的方法
2015/07/29 PHP
jquery 常用操作方法
2010/01/28 Javascript
js下利用控制器载入对应脚本
2010/07/17 Javascript
Jquery.TreeView结合ASP.Net和数据库生成菜单导航条
2010/08/27 Javascript
javascript 弹出层组件(升级版)
2011/05/12 Javascript
jquery点击缩略图切换视频播放特效代码分享
2015/09/15 Javascript
基于jquery实现省市联动特效
2015/12/17 Javascript
详解JavaScript模块化开发
2016/12/04 Javascript
Bootstrap和Java分页实例第一篇
2016/12/23 Javascript
JavaScript之promise_动力节点Java学院整理
2017/07/03 Javascript
解决JS外部文件中文注释出现乱码问题
2017/07/09 Javascript
响应式框架Bootstrap栅格系统的实例
2017/12/19 Javascript
angularjs 页面自适应高度的方法
2018/01/17 Javascript
微信小程序实现图片上传功能
2018/05/28 Javascript
微信小程序实现自定义picker选择器弹窗内容
2020/05/26 Javascript
python生成随机图形验证码详解
2017/11/08 Python
Python实现读取字符串按列分配后按行输出示例
2018/04/17 Python
浅析Python装饰器以及装饰器模式
2018/05/28 Python
用Python实现BP神经网络(附代码)
2019/07/10 Python
Python判断字符串是否为空和null方法实例
2020/04/26 Python
Python常用数据分析模块原理解析
2020/07/20 Python
解决tensorflow模型压缩的问题_踩坑无数,总算搞定
2021/03/02 Python
HTML5 新事件 小结
2009/07/16 HTML / CSS
意大利辅助药品、药物和补品在线销售:FarmaEurope
2020/04/29 全球购物
财务总经理岗位职责
2014/02/16 职场文书
2014年个人总结范文
2015/03/09 职场文书
会计继续教育培训心得体会
2016/01/19 职场文书
2019个人工作态度自我评价
2019/04/24 职场文书
导游词之无锡梅园
2019/11/28 职场文书
go语言-在mac下brew升级golang
2021/04/25 Golang
python opencv人脸识别考勤系统的完整源码
2021/04/26 Python
手把手教你用SpringBoot将文件打包成zip存放或导出
2021/06/11 Java/Android
springboot集成flyway自动创表的详细配置
2021/06/26 Java/Android
使用python求解迷宫问题的三种实现方法
2022/03/17 Python