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 相关文章推荐
初窥JQuery(二) 事件机制(1)
Nov 25 Javascript
jQuery分别获取选中的复选框值的示例
Jun 17 Javascript
AngularJS入门教程(零):引导程序
Dec 06 Javascript
jQuery添加options点击事件并传值实例代码
May 18 Javascript
JQuery中解决重复动画的方法
Oct 17 Javascript
vue.js初学入门教程(2)
Nov 07 Javascript
js放到head中失效的原因与解决方法
Mar 07 Javascript
jquery事件与绑定事件
Mar 16 Javascript
浅谈react+es6+webpack的基础配置
Aug 09 Javascript
jQuery实现百度图片移入移出内容提示框上下左右移动的效果
Jun 05 jQuery
浅析java线程中断的办法
Jul 29 Javascript
ajax请求前端跨域问题原因及解决方案
Oct 16 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的curl实现get和post的代码
2008/08/23 PHP
PHP 自定义错误处理函数的使用详解
2013/05/10 PHP
探讨如何在php168_cms中提取验证码
2013/06/08 PHP
微信公众平台开发关注及取消关注事件的方法
2014/12/23 PHP
php图片水印添加、压缩、剪切的封装类实现
2020/04/18 PHP
php Session无效分析资料整理
2016/11/29 PHP
PHP 扩展Memcached命令用法实例总结
2020/06/04 PHP
关于IE7 IE8弹出窗口顶上
2008/12/22 Javascript
jquery之empty()与remove()区别说明
2010/09/10 Javascript
Javascript基础教程之switch语句
2015/01/18 Javascript
javascript中call apply 的应用场景
2015/04/16 Javascript
nodejs个人博客开发第四步 数据模型
2017/04/12 NodeJs
微信小程序搜索组件wxSearch实例详解
2017/06/08 Javascript
Vue+Element自定义纵向表格表头教程
2020/10/26 Javascript
原生js实现九宫格拖拽换位
2021/01/26 Javascript
在Python编程过程中用单元测试法调试代码的介绍
2015/04/02 Python
wxpython中自定义事件的实现与使用方法分析
2016/07/21 Python
Python字典简介以及用法详解
2016/11/15 Python
Django模板变量如何传递给外部js调用的方法小结
2017/07/24 Python
python3使用SMTP发送HTML格式邮件
2018/06/19 Python
解决python报错MemoryError的问题
2018/06/26 Python
python 实现图片旋转 上下左右 180度旋转的示例
2019/01/24 Python
django使用haystack调用Elasticsearch实现索引搜索
2019/07/24 Python
django修改models重建数据库的操作
2020/03/31 Python
Python sql注入 过滤字符串的非法字符实例
2020/04/03 Python
通过实例简单了解Python sys.argv[]使用方法
2020/08/04 Python
大学新生军训个人的自我评价
2013/10/03 职场文书
工程造价自荐信
2013/10/09 职场文书
导游的职业规划书范文
2013/12/27 职场文书
2015年幼儿园元旦亲子活动方案
2014/12/09 职场文书
通报表扬范文
2015/01/17 职场文书
支行行长岗位职责
2015/02/15 职场文书
感动中国何玥观后感
2015/06/02 职场文书
繁星春水读书笔记
2015/06/30 职场文书
学法用法心得体会(2016推荐篇)
2016/01/21 职场文书
关于PostgreSQL JSONB的匹配和交集问题
2021/09/14 PostgreSQL