JS如何判断文字是全角还是半角
载自:http://www.php.cn/js-tutorial-362638.html
1.什么是全角和半角?
全角:是一种电脑字符,是指一个全角字符占用两个标准字符(或两个半角字符)的位置。全角占两个字节。
汉字字符和规定了全角的英文字符及国标GB2312-80中的图形符号和特殊字符都是全角字符。在全角中,字母和数字等与汉字一样占据着等宽的位置。
半角:是指一个字符占用一个标准的字符位置。半角占一个字节。
半角就是 ASCII 方式的字符,在没有汉字输入法起作用的时候,输入的字母、数字和字符都是半角的。
每个半角字符只占用一字节的空间(一字节有8位,共256个编码空间)。汉语、日语、及朝鲜文等象形字语言的字库量远大于256个编码空间,所以改用两个字节来储存。同时,由于中日韩等象形文字的书写习惯,如果统一使用全角字符的话,排列起来也显得整齐。
为了排列整齐,英文和其它拉丁文的字符和标点也提供了全角格式。
2.全角和半角的区别
全角和半角主要是针对标点符号来说的,全角标点占两个字节,半角占一个字节。不管是半角还是全角,汉字都要占两个字节。
3.js判断输入的文字是全角还是半角?
|
1
2
3
4
|
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
半角转化为全角
|
1
2
3
4
5
6
7
8
9
10
11
12
|
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() 方法》。
全角转换为半角
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
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如何判断文字是全角还是半角的更多相关文章
- JS对全角与半角的验证,相互转化以及介绍
1.什么是全角和半角? 全角:是一种电脑字符,是指一个全角字符占用两个标准字符(或两个半角字符)的位置.全角占两个字节. 汉字字符和规定了全角的英文字符及国标GB2312-80中的图形符号和特殊字符都 ...
- C# 全角和半角转换以及判断的简单代码
在C#中判断和转换全角半角的方法 1. 判断是否为全角半角 全角占用二个字节 半角占用一个字节 用string.length 和System.text.Encoding.Default.GetByte ...
- JS全角与半角转化小结
最近在做PC端网站的页面的一个表单校验,需要把全角输入转化成半角符号.之前没有了解过这些编码的知识,还是得Google一下查查资料,故简单总结一下. 什么是全角.半角 传统上,英语或拉丁字母语言使用的 ...
- c# 半角转换为全角 判断是否是全角
#region 半角转换为全角 /// <summary> /// 半角转换为全角 ////转全角的函数(SBC case) ///任意字符串 ///全角空格为12288,半角空格为32 ...
- 由Lucnene 对于预治疗的文字,全角半角转换器(可执行)
这是我第二次读这本书,在自己的学习之间XML,javascript,的深入研究<JAVA 核心技术>. 在当中深入的学习了java的非常多机制. 回头再来看搜索引擎这本书的时候.就认为比第 ...
- js 全角与半角互转
///全角空格为12288,半角空格为32 ///其他字符半角(33-126)与全角(65281-65374)的对应关系是:均相差65248 //半角转换为全角函数 function ...
- java 全角字符半角字符转换
/// <summary> /// 判断字符是否英文半角字符或标点 /// </summary> /// <remarks> /// 32 空格 /// 33 ...
- 刨根究底字符编码之五——简体汉字编码方案(GB2312、GBK、GB18030、GB13000)以及全角、半角、CJK
简体汉字编码方案(GB2312.GBK.GB18030.GB13000)以及全角.半角.CJK 一.概述 1. 英文字母再加一些其他标点字符之类的也不会超过256个,用一个字节来表示一个字符就足够 ...
- Java全角、半角字符的关系以及转换
如果搞明白了Java中全角字符和半角字符之间的关系,那他们之间的转换就不是个麻烦事儿.你只需要对这个关系有那么一个印象就足够了. 全角字符与半角字符的关系 通过下面的代码能看到Java中所有字符以及对 ...
随机推荐
- git注册和基本命令
注册账户以及创建仓库 要想使用github第一步当然是注册github账号了.之后就可以创建仓库了(免费用户只能建公共仓库),Create a New Repository,填好名称后Create,之 ...
- 使用Junit测试框架学习Java
前言 在日常的开发中,离不开单元测试,而且在学习Java时,特别是在测试不同API使用时要不停的写main方法,显得很繁琐,所以这里介绍使用Junit学习Java的方法.此外,我使用log4j将结果输 ...
- node gm图片操作
1,安首先要安装 GraphicsMagick或者ImageMagick 2,npm install gm --save 3,编码测试 var fs = require('fs') //graph ...
- 倍增法求lca:暗的连锁
https://loj.ac/problem/10131 #include<bits/stdc++.h> using namespace std; struct node{ int to, ...
- 十五.ProtoBuf3的基础总结
转自: https://blog.csdn.net/u011518120/article/details/54604615 定义一个消息类型 指定字段类型 分配标识号 指定字段规则 添加更多消息类型 ...
- 自定义异步IO框架
异步就是回调 异步 = 非阻塞+循环 select只能完成IO多路复用,不能完成异步 IO多路复用--->监听多个socket对象,这个过程是同步的 利用其特性可以开发异步模块 异步IO:非阻塞 ...
- vue路由机制导致的坑,坑,坑
实现一个手机定位的功能: 跳转到指定页面的时候,安卓手机地图定位正常,苹果手机第一次进入页面,地图定位不准, 要刷新后,才可以准确定位,后来无意间不用路由跳转,使用JS跳转,完美解决, 特此记录,方便 ...
- [RxJS] Subject asObservable() method
You can create your own state store, not using any state management libraray. You might have seen th ...
- php自定义函数之回调函数
回调函数,可以配合匿名函数和变量函数实现更加优美.复杂的一种函数结构.大理石平台价格 回调函数,就是在处理一个功能的时候,我让让这个功能自定义能力再强一些,我准许调用这个函数的时候,还可以传入一个函数 ...
- (三)IDEA使用,功能面板
IDEA 打开界面后周围有许多的功能面板 常用的界面 1.project:项目的目录结构: 2.Structure:结构界面:在这个界面里可以看到选择的类,接口 的结构,有哪些方法,字段,等: 3. ...