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框架veryide.librar源代码
Mar 05 Javascript
基于jquery的让页面控件不可用的实现代码
Apr 27 Javascript
jquery实现checkbox 全选/全不选的通用写法
Feb 22 Javascript
jQuery分别获取选中的复选框值的示例
Jun 17 Javascript
JS中attr和prop属性的区别以及优先选择示例介绍
Jun 30 Javascript
node.js中的http.response.addTrailers方法使用说明
Dec 14 Javascript
js实现文本框宽度自适应文本宽度的方法
Aug 13 Javascript
微信小程序 教程之模板
Oct 18 Javascript
基于jQuery实现咖啡订单管理简单应用
Feb 10 Javascript
解决vue-cli创建项目的loader问题
Mar 13 Javascript
关于layui 下拉列表的change事件详解
Sep 20 Javascript
vue和H5 draggable实现拖拽并替换效果
Jul 29 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获取mysql数据库中的所有表名的代码
2011/04/23 PHP
JavaScript创建命名空间的5种写法
2014/06/24 PHP
PHP串行化与反串行化实例分析
2016/12/27 PHP
Laravel 验证码认证学习记录小结
2019/12/20 PHP
js 实现图片预加载(js操作 Image对象属性complete ,事件onload 异步加载图片)
2011/03/25 Javascript
js获取GridView中行数据的两种方法 分享
2013/07/13 Javascript
javascript中文本框中输入法切换的问题
2013/12/10 Javascript
使用JS或jQuery模拟鼠标点击a标签事件代码
2014/03/10 Javascript
不同编码的页面表单数据乱码问题解决方法
2015/02/15 Javascript
浅谈javascript中return语句
2015/07/15 Javascript
JS与jQuery遍历Table所有单元格内容的方法
2015/12/07 Javascript
JavaScript动态创建form表单并提交的实现方法
2015/12/10 Javascript
JavaScript数组去重的几种方法效率测试
2016/10/23 Javascript
bootstrap的3级菜单样式,支持母版页保留打开状态实现方法
2016/11/10 Javascript
JS闭包与延迟求值用法示例
2016/12/22 Javascript
JS遍历对象属性的方法示例
2017/01/10 Javascript
node.js爬虫爬取拉勾网职位信息
2017/03/14 Javascript
nodejs搭建本地服务器轻松解决跨域问题
2018/03/21 NodeJs
laydate如何根据开始时间或者结束时间限制范围
2018/11/15 Javascript
Vue配置marked链接添加target=&quot;_blank&quot;的方法
2019/07/19 Javascript
微信小程序request请求封装,验签代码实例
2019/12/04 Javascript
javascript设计模式 ? 解释器模式原理与用法实例分析
2020/04/17 Javascript
Python 探针的实现原理
2016/04/23 Python
浅谈python中的实例方法、类方法和静态方法
2017/02/17 Python
python MysqlDb模块安装及其使用详解
2018/02/23 Python
Python实现读写INI配置文件的方法示例
2018/06/09 Python
Python在OpenCV里实现极坐标变换功能
2019/09/02 Python
pygame库实现移动底座弹球小游戏
2020/04/14 Python
Python检测端口IP字符串是否合法
2020/06/05 Python
python中return如何写
2020/06/18 Python
HTML5+CSS3:3D展示商品信息示例
2017/01/03 HTML / CSS
Fanatics法国官网:美国体育电商
2019/08/27 全球购物
澳大利亚家用电器在线商店:Billy Guyatts
2020/05/05 全球购物
十八大标语口号
2014/10/09 职场文书
争先创优个人总结
2015/03/04 职场文书
通知范文怎么写
2015/04/16 职场文书