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_11_constructor实现原理
Oct 18 Javascript
Textarea与懒惰渲染实现代码
Jan 04 Javascript
javascript suggest效果 自动完成实现代码分享
Feb 17 Javascript
jQuery判断指定id的对象是否存在的方法
May 22 Javascript
EditPlus中的正则表达式 实战(2)
Dec 15 Javascript
JavaScript判断浏览器及其版本信息
Jan 20 Javascript
vue.js中v-on:textInput无法执行事件问题的解决过程
Jul 12 Javascript
前端把html表格生成为excel表格的实例
Sep 19 Javascript
JS实现的base64加密解密操作示例
Apr 18 Javascript
Vue中的作用域CSS和CSS模块的区别
Oct 09 Javascript
微信小程序入口场景的问题集合与相关解决方法
Jun 26 Javascript
vue判断按钮是否可以点击
Apr 09 Vue.js
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中PDO解决中文乱码问题的一些补充
2010/09/06 PHP
php读取txt文件并将数据插入到数据库
2016/02/23 PHP
php正则去除网页中所有的html,js,css,注释的实现方法
2016/11/03 PHP
Laravel框架在本地虚拟机快速安装的方法详解
2018/06/11 PHP
Yii2压缩PHP中模板代码的输出问题
2018/08/28 PHP
JQuery中的$.getJSON 使用说明
2011/03/10 Javascript
AngularJS压缩JS技巧分析
2016/11/08 Javascript
jQuery+HTML5实现弹出创意搜索框层
2016/12/29 Javascript
微信小程序日期时间选择器使用方法
2018/02/01 Javascript
vue--点击当前增加class,其他删除class的方法
2018/09/15 Javascript
jQuery控制input只能输入数字和两位小数的方法
2019/05/16 jQuery
vue使用微信JS-SDK实现分享功能
2019/08/23 Javascript
Vue的全局过滤器和私有过滤器的实现
2020/04/20 Javascript
npm全局环境变量配置详解
2020/12/15 Javascript
vue3 watch和watchEffect的使用以及有哪些区别
2021/01/26 Vue.js
Python获取文件ssdeep值的方法
2014/10/05 Python
深入理解Python中字典的键的使用
2015/08/19 Python
Python  pip安装lxml出错的问题解决办法
2017/02/10 Python
Python3操作MongoDB增册改查等方法详解
2020/02/10 Python
Python基础之列表常见操作经典实例详解
2020/02/26 Python
django admin管理工具自定义时间区间筛选器DateRangeFilter介绍
2020/05/19 Python
Html5页面点击遮罩层背景关闭遮罩层
2020/11/30 HTML / CSS
基督教卡片、励志礼品、家居装饰等:DaySpring
2018/10/12 全球购物
世界顶级户外运动品牌折扣网站:LeftLane Sports
2019/06/12 全球购物
升职自荐书范文
2013/11/28 职场文书
网络信息管理员岗位职责
2014/01/05 职场文书
2014年综治宣传月活动总结
2014/04/28 职场文书
努力学习演讲稿
2014/05/10 职场文书
世博会口号
2014/06/20 职场文书
党的群众路线教育实践活动组织生活会发言材料
2014/10/17 职场文书
2015年上半年物业工作总结
2015/03/30 职场文书
公司放假通知怎么写
2015/04/15 职场文书
中国梦党课学习心得体会
2016/01/05 职场文书
观看《杨善洲》宣传教育片心得体会
2016/01/23 职场文书
Python3使用Qt5来实现简易的五子棋小游戏
2022/05/02 Python