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 相关文章推荐
window.open()弹出居中的窗口
Feb 01 Javascript
JS和jquery获取各种屏幕的宽度和高度的代码
Aug 02 Javascript
js动态调用css属性的小规律及实例说明
Dec 28 Javascript
javascript中Array数组的迭代方法实例分析
Feb 04 Javascript
如何解决谷歌浏览器下jquery无法获取图片的尺寸
Sep 10 Javascript
第三章之Bootstrap 表格与按钮功能
Apr 25 Javascript
JavaScript使用原型和原型链实现对象继承的方法详解
Apr 05 Javascript
详解为Bootstrap Modal添加拖拽的方法
Jan 05 Javascript
VUE脚手架具体使用方法
May 20 Javascript
分享一个vue项目“脚手架”项目的实现步骤
May 26 Javascript
jquery.pager.js实现分页效果
Jul 29 jQuery
在Vue中使用Viser说明(基于AntV-G2可视化引擎)
Oct 28 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连mysql和oracle数据库性能比较
2006/10/09 PHP
php access 数据连接与读取保存编辑数据的实现代码
2010/05/12 PHP
ini_set的用法介绍
2014/01/07 PHP
Zend Framework框架实现类似Google搜索分页效果
2016/11/25 PHP
PHP实现对xml的增删改查操作案例分析
2017/05/19 PHP
如何让PHP编码更加好看利于阅读
2019/05/12 PHP
Gambit vs ForZe BO3 第一场 2.13
2021/03/10 DOTA
支持ie与FireFox的剪切板操作代码
2009/09/28 Javascript
基于jquery的监控数据是否发生改变
2011/04/11 Javascript
小试JQuery的AutoComplete插件
2011/05/04 Javascript
JS记录用户登录次数实现代码
2014/01/15 Javascript
JavaScript编程中容易出BUG的几点小知识
2015/01/31 Javascript
JS显示下拉列表框内全部元素的方法
2015/03/31 Javascript
全面解析Bootstrap表单使用方法(表单控件状态)
2015/11/24 Javascript
浅谈Nodejs中的作用域问题
2016/12/26 NodeJs
JavaScript正则获取地址栏中参数的方法
2017/03/02 Javascript
jQuery插件echarts实现的多柱子柱状图效果示例【附demo源码下载】
2017/03/04 Javascript
微信小程序表单弹窗实例
2018/07/19 Javascript
Vue 幸运大转盘实现思路详解
2019/05/06 Javascript
使用typescript改造koa开发框架的实现
2020/02/04 Javascript
vue v-for 点击当前行,获取当前行数据及event当前事件对象的操作
2020/09/10 Javascript
python创建一个最简单http webserver服务器的方法
2015/05/08 Python
Python爬取破解无线网络wifi密码过程解析
2019/09/17 Python
Python 函数绘图及函数图像微分与积分
2019/11/20 Python
Cecil Mode法国在线商店:女性时尚
2021/01/08 全球购物
如何获取某个日期是当月的最后一天
2013/12/05 面试题
令人啧啧称赞的经理推荐信
2013/11/07 职场文书
新郎婚宴答谢词
2014/01/19 职场文书
投资合作协议书范本
2014/04/17 职场文书
2014大学生职业生涯规划书最新范文
2014/09/13 职场文书
学生顶撞老师的检讨书
2014/09/17 职场文书
同学聚会邀请函
2015/01/30 职场文书
企业财务总监岗位职责
2015/04/03 职场文书
六年级语文教学反思
2016/03/03 职场文书
创业计划书之干洗店
2019/09/10 职场文书
浅谈Python3中datetime不同时区转换介绍与踩坑
2021/08/02 Python