JS使用正则和charCodeAt()方法区分中英文字符的2种方法
时间:2010-10-27 13:45:02 来源:www.cnblogs.com 作者:Mr.Think
-
-
本文和大家分享一下JS区分中英文字符的两种方法: 正则和charCodeAt()方法。
正则无疑是最强大的判断各种条件的方法, 最近也在研习它, 虽然枯燥, 但仍有乐趣. 用它来判断一个双字节的中文字符也是轻而易举地. 而判断中文字符, 简单且执行效率高.
核心代码如下:
Code [http://www.xueit.com]
regExpForm.onblur=function(){ entryVal=this.value; entryLen=entryVal.length; cnChar=entryVal.match(/[^\x00-\x80]/g);//利用match方法检索出中文字符并返回一个存放中文的数组 entryLen =cnChar.length;//算出实际的字符长度 }
第二种方法是通过charCodeAt()方法判断Unicode码值, 若大于255即为中文字符, 它的执行效率没有正则高, 也没有正则简单.
核心代码如下:
Code [http://www.xueit.com]
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;
分享到:
相关推荐
本文就将介绍两种区分中英文字符的方法: 利用正则和charCodeAt方法区分中英文字符. 区分中英文字符的两种方法: 正则和charCodeAt()方法@Mr.Think /*reset css*/ body{font-size:0.8em;letter-spacing:1px;font-...
目的:计算字符串长度(英文占1个字符,中文汉字占2个字符) 方法一: 代码如下:String.prototype.gblen = function() { var len = 0; for (var i=0; i<this>127 || this.charCodeAt(i)==94) { len += 2; } else {...
JavaScript的RegExp对象和String对象定义了使用正则表达式来执行强大的模式匹配和文本检索与替换函数的方法. 在JavaScript中,正则表达式是由一个RegExp对象表示的.当然,可以使用一个RegExp()构造函数来创建RegExp...
这就要求在实际编程中,我们需要能够区分和处理这两种不同的字符类型。 以上这些方法和技巧对于希望提高JavaScript字符串操作效率和准确性的人来说非常有用,尤其在处理国际化文本时。希望本文所述对大家的...
在编程领域,尤其是在前端开发中,经常需要处理全角字符(DBCS,Double-Byte Character Set)和半角字符(SBCS,Single-Byte...在实践中,还可以结合其他JavaScript方法,如正则表达式,进一步优化和扩展这种转换功能。
提供的`unicode.html`和`Unicode.js`文件可能包含关于Unicode编码的示例代码或者工具,通过这些资源可以进一步了解Unicode在JavaScript中的使用方法,以及如何进行ASCII和Unicode之间的转换。学习和掌握这些知识,...
而半角字符则指占用一个字节宽度的字符,常用于英文等西方语言环境中的字符。这两种字符的主要区别在于显示宽度和字符编码。 #### 转换原理 全角字符与半角字符在ASCII码范围内的对应关系是有规律可循的。对于大...
|--js中正则表达式语法:/正则表达式/[属性后缀]--其中属性后缀,g:全局匹配 i:忽略大小写(仅英文有效) 如果不适用模式匹配方式,将执行原文匹配 结果:如果正则表达式写错,也将执行原文匹配 12.Array笔试题...
在处理字符串长度计算时,尤其是在中文环境下,普通的.length属性...在实际应用中可以根据具体需求和偏好选择不同的方法来使用。需要注意的是,这些方法假设使用的是UTF-16编码,对于其他编码可能需要不同的处理方式。
函数的内部实现通过for循环遍历字符串中的每一个字符,并使用`charCodeAt`方法获取字符的Unicode编码。 在循环体内,通过判断每个字符的编码值是否大于128来判断是否为全角字符。如果发现任何一个字符的编码值超过...
1. **计算字符串的字节数**:考虑到中文字符占两个字节,英文字符占一个字节的情况。 2. **截取字符串至指定字节数**:如果字符串长度超过指定字节数,则进行截取。 3. **截取字符串时保证 URL 的完整性**:在截取...
这是因为在JavaScript原生length属性中,所有字符都被当作单字节处理,导致中文字符和英文字符长度相同。实际上中文字符在UTF8编码中占用的字节长度是变化的,常见的中文字符需要3个字节来表示。 在探讨如何准确...
在处理中文字符时,需要注意的是,一个中文字符在JavaScript中占用两个字节,而英文字符则只占用一个字节。因此,我们在截取字符串时必须考虑字符编码的影响。 以下是一个实现自动截取字符串长度并添加省略号的函数...
本文将深入探讨如何使用JavaScript(简称JS)实现一种能准确区分中文和英文字符的字数统计方法。此方法的核心在于能够正确识别并计算中文字符(每个计为两个字符)与英文字符(每个计为一个字符)的数量。 #### ...
此外,由于实际环境中可能存在多种字符集混合使用的复杂情况,上述函数在实际应用中可能需要结合其他方法来判断字符串的具体编码,或者使用正则表达式等更复杂的逻辑来准确地实现中文字符的长度计数。 总之,通过...
在***开发中,实现对中英文多域名的检测是网站国际化和本地化的一个重要环节。本文将详细介绍如何在***环境下,通过编写JavaScript代码与.NET后端代码相结合的方法,来判断用户输入的域名是中文域名还是英文域名。该...
3. **使用字符串函数**:某些编程语言提供了内置的字符串函数,如JavaScript的`String.fromCharCode()`和`charCodeAt()`,可以用来进行字符与Unicode值之间的转换。 4. **正则表达式替换**:使用正则表达式匹配全角...