JS验证全角与半角及相互转化的介绍


Posted in Javascript onMay 18, 2017

1.什么是全角和半角?

全角:是一种电脑字符,是指一个全角字符占用两个标准字符(或两个半角字符)的位置。全角占两个字节。

汉字字符和规定了全角的英文字符及国标GB2312-80中的图形符号和特殊字符都是全角字符。在全角中,字母和数字等与汉字一样占据着等宽的位置。

半角:是指一个字符占用一个标准的字符位置。半角占一个字节。

半角就是 ASCII 方式的字符,在没有汉字输入法起作用的时候,输入的字母、数字和字符都是半角的。

每个半角字符只占用一字节的空间(一字节有8位,共256个编码空间)。汉语、日语、及朝鲜文等象形字语言的字库量远大于256个编码空间,所以改用两个字节来储存。同时,由于中日韩等象形文字的书写习惯,如果统一使用全角字符的话,排列起来也显得整齐。

为了排列整齐,英文和其它拉丁文的字符和标点也提供了全角格式。

2.全角和半角的区别

全角和半角主要是针对标点符号来说的,全角标点占两个字节,半角占一个字节。不管是半角还是全角,汉字都要占两个字节。

3.js判断输入的文字是全角还是半角?

str="中文;;a"   
alert(str.match(/[\u0000-\u00ff]/g))   //半角  
alert(str.match(/[\u4e00-\u9fa5]/g))   //中文  
alert(str.match(/[\uff00-\uffff]/g))   //全角

4.js对全角与半角的相互转化

首先,先得明确以下信息:

a.全角空格为12288,半角空格为32

b.其他字符半角(33-126)与全角(65281-65374)的对应关系是:均相差65248

半角转化为全角

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的charCodeAt() 方法与fromCharCode() 方法。

charCodeAt() 方法可返回指定位置的字符的 Unicode 编码。这个返回值是 0 - 65535 之间的整数。

fromCharCode() 可接受一个指定的 Unicode 值,然后返回一个字符串。

想详细的了解charCodeAt() 方法与fromCharCode()方法,可以点击《JavaScript charCodeAt() 方法》与《JavaScript fromCharCode() 方法》。

全角转换为半角

function ToCDB(str) { 
  var tmp = ""; 
  for(var i=0;i<str.length;i++){ 
    if (str.charCodeAt(i) == 12288){
      tmp += String.fromCharCode(str.charCodeAt(i)-12256);
      continue;
    }
    if(str.charCodeAt(i) > 65280 && str.charCodeAt(i) < 65375){ 
      tmp += String.fromCharCode(str.charCodeAt(i)-65248); 
    } 
    else{ 
      tmp += String.fromCharCode(str.charCodeAt(i)); 
    } 
  } 
  return tmp 
}

以上所述是小编给大家介绍的JS验证全角与半角及相互转化的知识,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
javascript之水平横向滚动歌词同步的应用
May 07 Javascript
Javascript 遍历对象中的子对象
Jul 03 Javascript
IE和firefox浏览器的event事件兼容性汇总
Dec 06 Javascript
IE下js调试工具Companion.JS
Oct 15 Javascript
ECMAScript6中Map/WeakMap详解
Jun 12 Javascript
每天一篇javascript学习小结(面向对象编程)
Nov 20 Javascript
根据Bootstrap Paginator改写的js分页插件
Dec 25 Javascript
Vue.js之slot深度复制详解
Mar 10 Javascript
vue增删改查的简单操作
Jul 15 Javascript
EasyUI在Panel上动态添加LinkButton按钮
Aug 11 Javascript
Node.js console控制台简单用法分析
Jan 04 Javascript
vue中利用iscroll.js解决pc端滚动问题
Feb 15 Javascript
Vue-cli proxyTable 解决开发环境的跨域问题详解
May 18 #Javascript
Javascript实现倒计时时差效果
May 18 #Javascript
vue-cli webpack 开发环境跨域详解
May 18 #Javascript
JavaScript实现简单的星星评分效果
May 18 #Javascript
Javascript循环删除数组中元素的几种方法示例
May 18 #Javascript
Javascript实现信息滚动效果
May 18 #Javascript
详解Vue-cli 创建的项目如何跨域请求
May 18 #Javascript
You might like
php 分页类 扩展代码
2009/06/11 PHP
php self,$this,const,static,-&amp;gt;的使用
2009/10/22 PHP
php &amp;&amp; 逻辑与运算符使用说明
2010/03/04 PHP
PHP、Python和Javascript的装饰器模式对比
2015/02/03 PHP
php使用gettimeofday函数返回当前时间并存放在关联数组里
2015/03/19 PHP
PHP实现获取中英文首字母
2015/06/19 PHP
PHP后台微信支付和支付宝支付开发
2017/04/28 PHP
PHP容器类的两种实现方式示例
2019/07/24 PHP
jqTransform form表单美化插件使用方法
2012/07/05 Javascript
jQuery图片的展开和收缩实现代码
2013/04/16 Javascript
你必须知道的JavaScript 中字符串连接的性能的一些问题
2013/05/07 Javascript
javascript实现信息的显示和隐藏如注册页面
2013/12/03 Javascript
详解页面滚动值scrollTop在FireFox与Chrome浏览器间的兼容问题
2015/12/03 Javascript
完美解决jQuery 鼠标快速滑过后,会执行多次滑出的问题
2016/12/08 Javascript
vue监听滚动事件实现滚动监听
2017/04/11 Javascript
详解vue渲染函数render的使用
2017/12/12 Javascript
jQuery niceScroll滚动条错位问题的解决方法
2018/02/03 jQuery
vue2.0项目实现路由跳转的方法详解
2018/06/21 Javascript
JavaScript键盘事件常见用法实例分析
2019/01/03 Javascript
使用vue中的混入mixin优化表单验证插件问题
2019/07/02 Javascript
createObjectURL方法实现本地图片预览
2019/09/30 Javascript
JavaScript对象属性操作实例解析
2020/02/04 Javascript
autojs 蚂蚁森林能量自动拾取即给指定好友浇水的实现方法
2020/05/03 Javascript
[02:54]DOTA2英雄基础教程 暗影牧师戴泽
2013/12/05 DOTA
Python3基础之条件与循环控制实例解析
2014/08/13 Python
Linux下通过python访问MySQL、Oracle、SQL Server数据库的方法
2016/04/23 Python
Python结巴中文分词工具使用过程中遇到的问题及解决方法
2017/04/15 Python
一些Centos Python 生产环境的部署命令(推荐)
2018/05/07 Python
详解Python的数据库操作(pymysql)
2019/04/04 Python
详解pandas中利用DataFrame对象的.loc[]、.iloc[]方法抽取数据
2020/12/13 Python
乡镇干部党的群众路线教育实践活动个人对照检查材料
2014/09/24 职场文书
办公室文员岗位职责
2015/02/04 职场文书
SQL Server数据定义——模式与基本表操作
2021/04/05 SQL Server
CSS作用域(样式分割)的使用汇总
2021/11/07 HTML / CSS
使用canvas仿Echarts实现金字塔图的实例代码
2021/11/11 HTML / CSS
Vue中使用import进行路由懒加载的原理分析
2022/04/01 Vue.js