在javascript中如何得到中英文混合字符串的长度
有同事在公司的OA上发了个贴子,介绍在javascript中如何得到中英文混合字符串的长度。
var str = ”坦克是tank的音译”;
var len = str.match(/[^ -~]/g) == null ? str.length : str.length + str.match(/[^ -~]/g).length ;
我查了一下书,有点明白了:
西文常用字符集由空格“ ”(0x20)到“~”(0x7e)构成,汉字会落在这个字符集外,而正则表达式[^ -~]表示除空格到“~”外的字符集。
代码如下:
string.match(regex) 会以数组形式返回字符串string中匹配正则表达式regex的子串,所以,
str.match(/[^ -~]/g)会以数组的形式返回一个个汉字。例如
var str = "dd大哥";
//显示"大,哥",数组中返回两个汉字,数组长度为2
alert(str.match(/[^ -~]/g));
这样,var len = str.match(/[^ -~]/g) == null ? str.length : str.length + str.match(/[^ -~]/g).length ;就可以得到str的正确长度了。
在javascript中,一个汉字的长度也被计算为1,常常在提交到数据库中造成长度超标的错误,现在用这个方法,可以在提交前先检测一番了。
注:以上代码有些符号有问题,经修正后,改为如下函数。
代码如下:
function get_strlength (str)
{
var len = 0;
if (str.match(/[^ -~]/g) == null)
{
len = str.length;
}
else
{
len = str.length + str.match(/[^ -~]/g).length;
}
return len;
}
相关推荐
-
js限制textarea每行输入字符串长度的代码
但是textarea没有这个属性. asp.net的服务端textbox这个属性也不起效,所以我们只有用js脚本来控制 好,废话不多说,先上代码 javascipt源码: 复制代码 代码如下: function textCounter(field, maxlimit, lines) {//参数说明:field是textarea对象,maxlimit是最大允许长度,lines是行数 var arr = field.value.split("\n");//首先我们要为验证行数,通过分行符&
-
javascript截取字符串(通过substring实现并支持中英文混合)
javascript截取字符串(支持中英文混合) 复制代码 代码如下: <script type="text/javascript"> var sub=function(str,n){ var r=/[^\x00-\xff]/g; if(str.replace(r,"mm").length<=n){return str;} var m=Math.floor(n/2); for(var i=m;i<str.length;i++){ if(str
-
JS判断输入字符串长度实例代码(汉字算两个字符,字母数字算一个)
js判断输入字符串长度实例代码(汉字算两个字符,字母数字算一个) 文本输入时,由于数据库表字段长度限制会导致提交失败,因此想到了此方法验证. 废话不多说上代码: <html> <head> <title>js判断输入字符串长度(汉字算两个字符,字母数字算一个)</title> <style type="text/css"> .pbt { margin-bottom: 10px; } .ie6 .pbt .ftid a, .ie
-
JavaScript获取中英文混合字符串长度的方法示例
本文实例讲述了JavaScript获取中英文混合字符串长度的方法.分享给大家供大家参考,具体如下: JavaScript获取中英文混合字符串的长度方法: function StrLen(sString) { var j = 0; var s = sString; if (s=="") return j; for (var i=0; i<s.length; i++) { if (s.substr(i,1).charCodeAt(0)>255) j = j + 2; else
-
js如何判断输入字符串长度
js判断输入字符串长度(汉字算两个字符,字母数字算一个) 文本输入时,由于数据库表字段长度限制会导致提交失败,因此想到了此方法验证. 废话不多说上代码: <html> <head> <title>js判断输入字符串长度(汉字算两个字符,字母数字算一个)</title> <style type="text/css"> .pbt { margin-bottom: 10px; } .ie6 .pbt .ftid a, .ie7 .p
-
js 判断计算字符串长度/判断空的简单方法
计算字符串长度可用的三种方法: 复制代码 代码如下: echo "$str"awk '{print length($0)}' expr length "$str" echo "$str"wc -c 但是第三种得出的值会多1,可能是把结束符也计算在内了.判断字符串为空的方法有三种: 复制代码 代码如下: if [ "$str" = "" ] if [ x"$str" = x ] if [
-
Javascript 字符串字节长度计算函数代码与效率分析(for VS 正则)
先看看一下两段代码吧,它们分别用for循环和正则表达式来检测字符串的字节长度: for循环检测字符串的字节长度方法一: 复制代码 代码如下: var lenFor = function(str){ var byteLen=0,len=str.length; if(str){ for(var i=0; i<len; i++){ if(str.charCodeAt(i)>255){ byteLen += 2; } else{ byteLen++; } } return byteLen; } els
-
JS判断字符串长度的5个方法(区分中文和英文)
目的:计算字符串长度(英文占1个字符,中文汉字占2个字符) 方法一: 复制代码 代码如下: String.prototype.gblen = function() { var len = 0; for (var i=0; i<this.length; i++) { if (this.charCodeAt(i)>127 || this.charCodeAt(i)==94) { len += 2; } else { len ++;
-
JavaScript实现的GBK、UTF8字符串实际长度计算函数
大家都知道,在JS中字符串的长度不分中英文字符, 每一个字符都算一个长度,这跟PHP里的strlen()函数就不太一样.PHP里的strlen()函数根据字符集把GBK的中文每个2累加,把UTF-8的中文字符每个按3累加. 有些童鞋可能要问了,为什么要计算实际长度? 主要是为了匹配数据库的长度范围内,比如GBK的数据库某字段是varchar(10),那么就相当于5个汉字长度,一个汉字等于两个字母长度.如果是UTF8的数据库则是每个汉字长度为3. 知道了以上原理以后,我们就可以算出一个字符串的实际
-
JS获取字符串型数组下标的数组长度的代码
标题页 var info = new Array(); //创建数组对象 info['name'] = '张三'; //设置数组中的一项,注意索引为字符串类型 info['age'] = '26'; //设置数组中的第二项 var i=0; for(var n in info) //遍历数组中的每一项 { i++; //用来获取数组中的元素个数 } alert("总共"+i+"个元素"); //显示数组中总共多少元素 [Ctrl+A 全选 注:如需引入外部Js需刷新
-
js截取中英文字符串、标点符号无乱码示例解读
复制代码 代码如下: <script> function subString(str, len, hasDot) { var newLength = 0; var newStr = ""; var chineseRegex = /[^\x00-\xff]/g; var singleChar = ""; var strLength = str.replace(chineseRegex,"**").length; for(var i =
-
js计算字符串长度包含的中文是utf8格式
方法一: 复制代码 代码如下: function byteLength(str) { var byteLen = 0, len = str.length; if( !str ) return 0; for( var i=0; i<len; i++ ) byteLen += str.charCodeAt(i) > 255 ? 2 : 1; return byteLen;} 说明:byteLength(str)参数:string str: 要计算字节长度的字符串(非ASCII的字符算2字节) 方
随机推荐
- 浅析如何利用angular结合translate为项目实现国际化
- 支付宝 接口开发帮助(asp,php,asp.net,jsp)
- javascript 自动转到命名锚记
- 用vbs实现配置静态 IP 地址
- jQuery+CSS3+Html5实现弹出层效果实例代码(附源码下载)
- 用vbs 取得收藏夹里的所有链接名称和URL的脚本
- iOS直播类APP开发流程解析
- Python采用socket模拟TCP通讯的实现方法
- JavaScript地理位置信息API
- Javascript对象中关于setTimeout和setInterval的this介绍
- PHP读取zip文件的方法示例
- JavaScript 学习初步 入门教程
- Linux系统下查看mysql版本的四种方法
- 利用Split函数进行多关键字检索
- sql2005创建远程登录帐户的sql语句
- javascript 图片放大缩小功能实现代码
- jQuery入门第一课 jQuery选择符
- js实现打地鼠小游戏
- 关于JAVA 数组的使用介绍
- 获取一个数字的个位、十位、百位的函数代码