最近在为项目写登录注册系列页面, 表单验证无疑是不可缺少的部分, 在这个jQ插件满天飞的web年代, 表单验证倒也不是难事. 但再好的插件, 也并不能做到十全十美, 比如这次用到的我先前介绍过的Vanadium表单验证插件, 因为是E文中不存在占2个字符的字, 所以, 区分中英文字符就得自己扩展. 本文就将介绍两种区分中英文字符的方法: 利用正则和charCodeAt方法区分中英文字符.点此查看DEMO
正则无疑是最强大的判断各种条件的方法, 最近也在研习它, 虽然枯燥, 但仍有乐趣. 用它来判断一个双字节的中文字符也是轻而易举地. 而判断中文字符, Mr.Think也是非常推荐用这种方法的, 简单且执行效率高.
核心代码如下:

regExpForm.onblur=function(){
        entryVal=this.value;
        entryLen=entryVal.length;
        cnChar=entryVal.match(/[^\x00-\x80]/g);//利用match方法检索出中文字符并返回一个存放中文的数组
        entryLen+=cnChar.length;//算出实际的字符长度
    }

第二种方法是通过charCodeAt()方法判断Unicode码值, 若大于255即为中文字符(为什么? 请Google ). Mr.Think并不建议用这种方法的, 它的执行效率没有正则高, 也没有正则简单.
核心代码如下:

entryVal=this.value;
        entryLen=entryVal.length;
        for(var i=0;i<entryVal.length;i++){
            if(entryVal.charCodeAt(i)>255){//遍历判断字符串中每个字符的Unicode码,大于255则为中文
                cnArr.push(entryVal[i]);//讲符合条件的值插入到中文字符数组中
                //注意一个小bug,push是向数组的末尾添加一个或多个元素并返回新的长度,所以未刷新的情况下反复blur会累加字符值
            }
        }
        entryLen+=cnArr.length;

原文发布于Mr.Think的博客: http://mrthink.net/js-cn-en-character/ ,转载请注明出处.

转载于:https://www.cnblogs.com/mrthink/archive/2010/10/26/1861673.html

区分中英文字符的两种方法: 正则和charCodeAt()方法相关推荐

  1. JS区分中英文字符的两种方法

    JS区分中英文字符的两种方法: 正则和charCodeAt()方法. 正则无疑是最强大的判断各种条件的方法, 最近也在研习它, 虽然枯燥, 但仍有乐趣. 用它来判断一个双字节的中文字符也是轻而易举地. ...

  2. android正则判断两个符号之间,Android字母、数字、字符任意两种组合正则验证

    释放双眼,带上耳机,听听看~! 最近朋友有个用户名验证,要求字母.数字.字符任意两种组合即可,让我帮写个正则验证,现在正则验证如下: /** * 判断是否匹配正则 * * @param regex 正 ...

  3. 正则 8-18位长度,数字,字母,字符 任意两种,不含中文测试通过

    原文:正则 8-18位长度,数字,字母,字符 任意两种,不含中文测试通过 String regex = "^(?!^(\\d+|[a-zA-Z]+|[~!@#$%^&*?]+)$)^ ...

  4. 搜索计算机无法输入法,Windows10左下角搜索框无法输入字符的两种解决方法

    用户在使用win10系统过程中,经常会使用到其自带的搜索功能.不过,近来有些用户却发现电脑左下角的搜索框突然无法输入字符.那这该怎么办呢?我们最常用的方法是重启电脑,让win10的搜索服务重新运行.下 ...

  5. 计算文本长度,区分中英文字符,中文算两个长度,英文算一个长度

    计算文本长度,区分中英文字符,中文算两个长度,英文算一个长度 public int Text_Length(string Text)       {             int len=0; fo ...

  6. 计算机搜索没办法打汉字,Win10左下角搜索框无法输入字符的两种解决方法

    用户在使用 win10系统 过程中,经常会使用到其自带的搜索功能.不过,近来有些用户却发现电脑左下角的搜索框突然无法输入字符.那这该怎么办呢?我们最常用的方法是重启电脑,让win10的搜索服务重新运行 ...

  7. java字节流分为_Java的流操作分为字节流和字符流两种。

    Java的流操作分为字节流和字符流两种.           1. 字节流  所有的读操作都继承自一个公共超类java.io.InputStream类.  所有的写操作都继承自一个公共超类java.i ...

  8. 华为手机还有两种语音转文字的方法,以前都不知道,真是浪费了

    使用华为手机的朋友都知道华为手机特别实用,手机中的很多小功,不仅能帮助我们学习,还能提高我们的工作效率,就比如我们经常会用到语音转文字方法进行码字,但是你知道吗?华为手机就有两种语音转文字的方法,下面 ...

  9. android内存池,两种常见的内存管理方法:堆和内存池

    描述 本文导读 在程序运行过程中,可能产生一些数据,例如,串口接收的数据,ADC采集的数据.若需将数据存储在内存中,以便进一步运算.处理,则应为其分配合适的内存空间,数据处理完毕后,再释放相应的内存空 ...

最新文章

  1. 【剑指offer】树的子结构
  2. python文本数据增强_CVPR2020场景文字数据增强(纯python实现)
  3. MIUI应用权限设置
  4. 前线观察 | AWS re:Invent 2018见闻实录
  5. 开发函数计算的正确姿势——使用 brotli 压缩大文件
  6. Java连接Redis及操作(二)
  7. 解决:Access denied for user ‘root’@‘localhost’(using password: YES)
  8. bootstrap 日历中文_bootstrap日期选择器本地化-中文
  9. toolBar——工具栏
  10. React Elements vs React Components
  11. java -jar命令
  12. 来自网页的消息服务器不能创建对象,电脑IE浏览器提示“Automation服务器不能创建对象”怎么办...
  13. 洛谷——P1160 队列安排
  14. Bumped! (最短路)
  15. python微信好友分析源代码_Python简单分析微信好友
  16. 微型计算机联想c325,寓教于乐一体机 联想IdeaCentre B325评测
  17. WordPress无插件实现主题彩色标签云的N种方法总结
  18. 0002数学建模的重要意义
  19. linux获取本地ip
  20. Wi-Fi®安全状况

热门文章

  1. Sql注入工具php,phpcms框架SQL注入--基于Havij工具
  2. antd vue 树更新数据后不展开_很全面的vue面试题总结
  3. python dictwriter_手把手教你写爬虫 |Python 采集大众点评数据采集实战
  4. 51nod 1126 求递推序列的第N项 思路:递推模拟,求循环节。详细注释
  5. 每天一道LeetCode-----寻找两个链表的交点
  6. 二叉树的直径—leetcode543
  7. HDU Problem - 1455 Sticks
  8. 标准库类型string的基本功能和使用
  9. ubuntu20.04安装mysql教程
  10. HTML下拉菜单去掉点,jQuery点击页面其他部分隐藏下拉菜单功能