遇到个问题,需要检测输入框中的字符长度,如果是汉字,算作2个字节。。。

然后我就在想,我怎么去识别他是不是汉字呢???首先想到的可能就是 js 的 charCodeAt 方法, ASCII 码,然后就疑惑,那么怎么把汉字和 ASCII 码对应起来呢,想不通,遂百度,发现转发方法的人挺多,但都不说原理,难道都明白???原理还是我来说吧

比较通用的方法都是这样子:

代码

        var a="好";isChinese=!!a.match(/[^\x00-\xff]/ig);//或者isChinese=!(a.charCodeAt()>=0&&a.charCodeAt()<=128);//或者直接求长度var length=a.replace(/[^\x00-\xff]/g,"**").length;

你会发现三种方法里有两种都提到了 \x00-\xff ,好好看看就是\转译符,加上16进制数字,转成10进制就是,0-255,那么这里意思就很明显了,就是找出 ASCII 码超出 0-255 的字符,如果有,就认为是汉字或全角字符,算作两个字节,明白了?

ASCII 码我倒是去看了下,0-127是统一的,128-255 的好像规则不统一,不过好像也没有汉字和全角字符,但是这样用精不精确,不大明白,有空再去补补计算机基础,,,

转载于:https://www.cnblogs.com/xianshenglu/p/7816098.html

js 识别汉字和全角字符相关推荐

  1. 判断全角字符oracle,oracle判断汉字和全角字符的方法

    最近由于单位提了一个需求,要判断提供的用户名称里不有全角字符,至少有两个汉字.找了半天,想通过正则表达式来解决,但测试了好久才发现,oracle的正则函数REGEXP_LIKE 不支持"\u ...

  2. java 校验姓名只能包含中英文_java代码验证用户名,支持中英文(包括全角字符)、数字、下划线和减号 (全角及汉字算两位),长度为4-20位,中文按二位计数...

    package com.sangedabuliu.www; import java.util.regex.Matcher; import java.util.regex.Pattern; public ...

  3. 正则js判断是否存在中文和全角字符

    正则js判断是否存在中文和全角字符 var str = ... String.prototype.isChinese = function () {var reg = /[^\x00-\xff]/ig ...

  4. js实现全角字符转换成半角字符

    在工作中用到将全角字符转换成半角的地方,就找了这个转换函数 //str:要转换的字符串 function DBC2SBC(str) {     var result="";     ...

  5. JS判断字符串中是否有全角字符

    var str="sssssss" var str2=str.match(/[\uff00-\uffff]/g); if(str!=null){ alert("以下字符& ...

  6. python把中文转英文_Python 3.0_文本清洗之中文特殊符号转英文特殊符号及全角字符转半角字符...

    在文本清洗的过程,特殊符号的不规范是比较麻烦的事情,所以需要把文本中的特殊符号按照统一的标准处理.以下代码的作用就是将中文的特殊符号统一转成英文的,以及将全角符号转换成半角符号.参考代码# -*- c ...

  7. boost正则库匹配ASII编码的中文、全角字符示例

    首先,boost正则库(regex)不支持形如 [0-9] 这样的表达式,貌似会崩溃. 现在查网上正则匹配中文的例子,都是讲用 \uFF00-\uFFFF ; 拜托,\u是unicode编码,能用于我 ...

  8. php 半角全角转换,php 把全角字符转换成半角

    经常遇到用户把英文字符或者标点符号写成了全角,有时候会导致系统无法识别,所以应该先把全角的字符全部转换成正常的半角,减少问题存在.其实原理很简单,也很笨吧,就是把所有的全角字符替换成对应的半角字符,摘 ...

  9. 全角字符和半角字符的区别

    全角字符的由来# 全角符号是双字节中文编码的历史遗留问题.当年在纯文本的界面中,为了让西文和中日韩的方块字对齐,就让西文字母.数字和标点也占用一个汉字的视觉空间,并使用 2 个字节存储.后来,其中的一 ...

最新文章

  1. android PhotoView的用法
  2. 无边框窗体和用户控件以及权限
  3. Java中Comparable和Comparator区别小结
  4. linux 往文件写4k大小,[svc]为何linux ext4文件系统目录默认大小是4k?
  5. js常用的2中排序方法:冒泡排序和快速排序
  6. Bone collector//动态规划
  7. 【Daily】IE弹窗SQL分割字符串
  8. 【好书推荐】学习软件工程的必经之路 | 《人月神话》
  9. 计算机表格简单教程视频教程,电脑如何制作表格步骤 教你制作简单的excel表格...
  10. 基于区块链技术实现“资产通证化”
  11. AV1编码器优化技术
  12. 【精品】机器学习模型可解释的重要及必要性
  13. SpringCloud(H版alibaba)之基本框架篇
  14. 无限法则服务器角色操作忙,无限法则海岛地图决赛圈打药及火山灰伤害测试图文介绍[多图]...
  15. Mean-Shift算法
  16. 广西北海自愿连锁经营业/1040阳光工程上总之后的真实内幕
  17. JSP类计算机专业毕业设计题目课题选题
  18. SMP865X广告机之破解dcchd
  19. 大数据产品经理python_大数据岗位要求之数据产品经理
  20. 关于Redis的数据清理

热门文章

  1. python统计个数的函数_Python
  2. 防灾科技学院期末软件测试,防灾科技学院2014 软件测试客观题
  3. mysql内置乐观锁吗_mysql 乐观锁详解
  4. MYSQL WHERE 当一个字段不为NULL的时候使用另一个字段判断
  5. 企业网络推广专员表示在企业网络推广中网站排名优化靠技巧
  6. docker lamp php7,如何用docker安装lamp
  7. springboot打印sql日志_Spring boot 工程,http打印日志太多
  8. 修复Linux系统内核TCP漏洞,修复Linux TCP SACK PANIC 远程拒绝服务漏洞
  9. python的分支语句中if和else必须同时出现_Python条件控制分支语句if…else…
  10. NetFlow是一种数据交换方式,提供网络流量的会话级视图,记录下每个TCP/IP事务的信息...