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编程起步(第二课)
Feb 27 Javascript
JavaScript面向对象之体会[总结]
Nov 13 Javascript
JavaScript动态添加列的方法
Mar 25 Javascript
javascript获取文档坐标和视口坐标
May 26 Javascript
jquery可定制的在线UEditor编辑器
Nov 17 Javascript
JavaScript中数组添加值和访问值常见问题
Feb 06 Javascript
jQuery tagsinput在h5邮件客户端中应用详解
Sep 26 Javascript
详解Angular CLI + Electron 开发环境搭建
Jul 20 Javascript
vue中计算属性(computed)、methods和watched之间的区别
Jul 27 Javascript
jquery实现拖拽小方块效果
Dec 10 jQuery
Vue中使用wangeditor富文本编辑的问题
Feb 07 Vue.js
js之ajax文件上传
May 13 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
推荐文章系统(一)
2006/10/09 PHP
php下防止单引号,双引号在接受页面转义的设置方法
2008/09/25 PHP
CodeIgniter上传图片成功的全部过程分享
2013/08/12 PHP
Yii框架弹出框功能示例
2017/01/07 PHP
php利用ZipArchive类操作文件的实例
2020/01/21 PHP
javascript与webservice的通信实现代码
2010/12/25 Javascript
document.getElementBy(&quot;id&quot;)与$(&quot;#id&quot;)有什么区别
2013/09/22 Javascript
js判断客户端是iOS还是Android等移动终端的方法
2013/12/11 Javascript
Js获取下拉框选定项的值和文本的实现代码
2014/02/26 Javascript
js实现正方形颜色从下往上升的效果
2014/08/04 Javascript
bootstrap modal弹出框的垂直居中
2016/12/14 Javascript
js原生代码实现轮播图的实例讲解
2017/07/28 Javascript
js 发布订阅模式的实例讲解
2017/09/10 Javascript
解决vue项目nginx部署到非根目录下刷新空白的问题
2018/09/27 Javascript
js笔试题-接收get请求参数
2019/06/15 Javascript
如何使用python爬取csdn博客访问量
2016/02/14 Python
Python爬虫获取整个站点中的所有外部链接代码示例
2017/12/26 Python
获取python的list中含有重复值的index方法
2018/06/27 Python
使用python socket分发大文件的实现方法
2019/07/08 Python
python字典的setdefault的巧妙用法
2019/08/07 Python
python内打印变量之%和f的实例
2020/02/19 Python
Ryderwear美国官网:澳大利亚高端健身训练装备品牌
2018/04/24 全球购物
纯净、自信、100%的羊绒服装:360Cashmere
2021/02/20 全球购物
不开辟用于交换数据的临时空间,如何完成字符串的逆序
2012/12/02 面试题
《夜晚的实验》教学反思
2014/02/19 职场文书
留学顾问岗位职责
2014/04/14 职场文书
社区文化建设方案
2014/05/02 职场文书
庆祝教师节演讲稿
2014/09/03 职场文书
迟到检讨书
2015/01/26 职场文书
义卖募捐活动总结
2015/05/09 职场文书
2015年社区教育工作总结
2015/05/13 职场文书
2015年酒店服务员工作总结
2015/05/18 职场文书
党支部季度考核意见
2015/06/02 职场文书
幼儿园六一儿童节开幕词
2016/03/04 职场文书
《别在吃苦的年纪选择安逸》读后感3篇
2019/11/30 职场文书
千万级用户系统SQL调优实战分享
2022/03/03 MySQL