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的图片切换效果
Jul 06 Javascript
js下利用控制器载入对应脚本
Jul 17 Javascript
Google的跟踪代码 动态加载js代码方法应用
Nov 12 Javascript
javascript 闭包详解
Feb 15 Javascript
JS制作简单的三级联动
Mar 18 Javascript
jQuery事件的绑定、触发、及监听方法简单说明
May 10 Javascript
jQuery树形插件jquery.simpleTree.js用法分析
Sep 05 Javascript
vue组件 $children,$refs,$parent的使用详解
Jul 31 Javascript
Vue官方文档梳理之全局配置
Nov 22 Javascript
JS实现遍历不规则多维数组的方法
Mar 21 Javascript
微信小程序实现图片翻转效果的实例代码
Sep 20 Javascript
解决antd 下拉框 input [defaultValue] 的值的问题
Oct 31 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
PHP5中使用PDO连接数据库的方法
2010/08/01 PHP
php中使用exec,system等函数调用系统命令的方法(不建议使用,可导致安全问题)
2012/09/07 PHP
PHP判断文件是否存在、是否可读、目录是否存在的代码
2012/10/03 PHP
php静态文件生成类实例分析
2015/01/03 PHP
Laravel 框架基于自带的用户系统实现登录注册及错误处理功能分析
2020/04/14 PHP
XmlUtils JS操作XML工具类
2009/10/01 Javascript
jQuery ajax在GBK编码下表单提交终极解决方案(非二次编码方法)
2010/10/20 Javascript
JS自定义功能函数实现动态添加网址参数修改网址参数值
2013/08/02 Javascript
node.js版本管理工具n无效的原理和解决方法
2016/11/24 Javascript
老生常谈js-react组件生命周期
2017/05/02 Javascript
Angularjs添加排序查询功能的实例代码
2017/10/24 Javascript
详解Vue快速零配置的打包工具——parcel
2018/01/16 Javascript
使用微信小程序开发弹出框应用实例详解
2018/10/18 Javascript
JQuery判断radio单选框是否选中并获取值的方法
2019/01/17 jQuery
详解vue 动态加载并注册组件且通过 render动态创建该组件
2019/05/30 Javascript
js DOM的事件常见操作实例详解
2019/12/16 Javascript
vue-router重写push方法,解决相同路径跳转报错问题
2020/08/07 Javascript
Python with语句上下文管理器两种实现方法分析
2018/02/09 Python
使用Python和xlwt向Excel文件中写入中文的实例
2018/04/21 Python
Python3.6日志Logging模块简单用法示例
2018/06/14 Python
将pandas.dataframe的数据写入到文件中的方法
2018/12/07 Python
Python 硬币兑换问题
2019/07/29 Python
安装PyInstaller失败问题解决
2019/12/14 Python
Python3+Selenium+Chrome实现自动填写WPS表单
2020/02/12 Python
解决Python在导入文件时的FileNotFoundError问题
2020/04/10 Python
python实现图片,视频人脸识别(opencv版)
2020/11/18 Python
CSS3模拟IOS滑动开关效果
2016/09/28 HTML / CSS
Html5 webview元素定位工具的实现
2020/08/07 HTML / CSS
亚马逊西班牙购物网站:amazon西班牙
2017/03/06 全球购物
精油和天然健康美容产品:Art Naturals
2018/01/27 全球购物
班主任工作经验材料
2014/02/02 职场文书
铣床操作工岗位职责
2014/06/13 职场文书
幼儿园六一活动总结
2014/08/27 职场文书
员工离职感谢信
2015/01/22 职场文书
社区党员干部承诺书
2015/05/04 职场文书
Python极值整数的边界探讨分析
2021/09/15 Python