您的位置:首页 > Web前端 > CSS

从ASCII编码谈颜色值与中英文识别

2015-12-16 18:19 531 查看
         ASCII码于1961年提出,用于在不同计算机硬件软件系统中实现数据传输标准化,在大多数的小型机和全部的个人计算机都使用此码。ASCII码划分为两个集合:128个字符的标准ASCII码和附加的128个字符的扩充和ASCII码。比较EBCDIC。其中95个字符可以显示。另外33个不可以显示。
标准ASCII码为7位,扩充为8位。

基本的 ASCII 字符集共有 128 个字符,其中有 96 个可打印字符,包括常用的字母、数字、标点符号等(如:¥%……&、),另外还有 32 个控制字符(如 换行:LF,回车:CR,换页:FF)。标准
ASCII 码使用 7 个二进位对字符进行编码,对应的 ISO 标准为 ISO646 标准。

字母和数字的 ASCII 码的记忆是非常简单的。我们只要记住了一个字母或数字的 ASCII 码(例如记住 A 为 65,a为65+32=97 , 0 的 ASCII 码为 48,1为49 ),知道相应的大小写字母之间差 32 ,就可以推算出其余字母、数字的 ASCII 码。

熟悉以上的基本计算机知识后,我们来探讨一个非常实用又常见的正则问题,那就是如何区分汉字和英文。 此种场景很多,如要判断某位用户当前输入的字符长度,来确保用户输入的字符串以免过长,对布局产生影响。一般的做法我们会将一个英文字母记为一个单位长度,中文和中文标点记做两个单位长度。 此时,我们就需要区别中英文了。

如何区别中英文就是我们要解决的问题,一种方案就是判断当前输入的“字”ASCII值范围是否在西方常用的 0 - 255 范围内,如果不在,我们不考虑其它国家语言的情况下,都可将之视为中文汉字。而0转换成16进制编码就是00,255传换成16进制编码就是ff。对于16进制换算的问题,我们也可以掌握一下。16进制编码以0-9a-f的组合来表示,只要记住0-9对应的10进制0-9,a表示在9基础上+1,依次类推,f=9+6。
所以16进制编码的ff,我们可以计算他的10进制结果为:15*16+15=255。

回到主题上用正则判断输入为汉字还是英文,思路就可以判断16进制编码不在0-255范围内视为汉字。转换为正则就是这样/[^\x00-\xff]/.test('汉字')。

另一个前端代码与16进制编码息息相关的就是样式中的颜色值了,常见的css重颜色值表示为rgb三色值表示法 color:rgb(255,0,221)对应的16进制表示法为
color:#ff00dd。其中16进制表示法,每两个字母对应一个色值,如ff 表示red值为255,00表示green值为0,dd表示blue值为221。

至此,以后再也不用纠结于16进制颜色取值和rgb取值之间的换算了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息