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 性能优化指南(3)
May 21 Javascript
Javascript 日期对象Date扩展方法
May 30 Javascript
js点击button按钮跳转到另一个新页面
Oct 10 Javascript
javascript中for/in循环及使用技巧
Sep 01 Javascript
angular-cli修改端口号【angular2】
Apr 19 Javascript
详解angularjs 学习之 scope作用域
Jan 15 Javascript
JS实现字符串去重及数组去重的方法示例
Apr 21 Javascript
jQuery实现鼠标滑过商品小图片上显示对应大图片功能【测试可用】
Apr 27 jQuery
vue 设置路由的登录权限的方法
Jul 03 Javascript
Vue利用Blob下载原生二进制数组文件
Sep 25 Javascript
vue中全局路由守卫中替代this操作(this.$store/this.$vux)
Jul 24 Javascript
JS常用跨域方法实现原理解析
Dec 09 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实现选择排序的解决方法
2013/05/04 PHP
用PHP实现浏览器点击下载TXT文档的方法详解
2013/06/02 PHP
PHP使用pcntl_fork实现多进程下载图片的方法
2014/12/16 PHP
php读取txt文件并将数据插入到数据库
2016/02/23 PHP
PHP实现的只保留字符串首尾字符功能示例【隐藏部分字符串】
2019/03/11 PHP
又一个小巧的图片预加载类
2007/05/05 Javascript
来自国外的30个基于jquery的Web下拉菜单
2012/06/22 Javascript
jquery indexOf使用方法
2013/08/19 Javascript
JQuery球队选择实例
2015/05/18 Javascript
Node.js实现JS文件合并小工具
2016/02/02 Javascript
简单掌握JavaScript中const声明常量与变量的用法
2016/05/21 Javascript
Javascript 普通函数和构造函数的区别
2016/11/05 Javascript
Jqprint实现页面打印
2017/01/06 Javascript
Javascript 一些需要注意的细节(必看篇)
2017/07/08 Javascript
vue中接口域名配置为全局变量的实现方法
2018/09/20 Javascript
Vue指令v-for遍历输出JavaScript数组及json对象的常见方式小结
2019/02/11 Javascript
微信小程序 下拉刷新及上拉加载原理解析
2019/11/06 Javascript
Python深入学习之上下文管理器
2014/08/31 Python
Python中强大的命令行库click入门教程
2016/12/26 Python
Python中函数eval和ast.literal_eval的区别详解
2017/08/10 Python
python使用wxpy实现微信消息防撤回脚本
2019/04/29 Python
Python基于scipy实现信号滤波功能
2019/05/08 Python
python科学计算之narray对象用法
2019/11/25 Python
pycharm 2020 1.1的安装流程
2020/09/29 Python
Django怎么在admin后台注册数据库表
2020/11/14 Python
CSS3 实现的火焰动画
2020/12/07 HTML / CSS
Tirendo比利时:在线购买轮胎
2018/10/22 全球购物
香港零食网购:上仓胃子
2020/06/08 全球购物
质量工程师岗位职责
2013/11/16 职场文书
中学实习教师自我鉴定
2013/12/12 职场文书
办理暂住证介绍信
2014/01/11 职场文书
大学生涯自我鉴定
2014/01/16 职场文书
个人收入证明范本
2014/09/18 职场文书
打架检讨书范文
2015/01/27 职场文书
水电施工员岗位职责
2015/04/11 职场文书
python manim实现排序算法动画示例
2022/08/14 Python