在javascript中如何得到中英文混合字符串的长度

 更新时间:2014年01月17日 15:35:29   作者:  
本文为大家介绍下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实现点击切换TAB标签实例

    简单纯js实现点击切换TAB标签实例

    选项卡效果代码,无jq,JS来实现,灰色风格,没有怎么美化,或许看上去比较普通,不过兼容性和操作起来挺舒服的,风格适用于大部分的网站,或许你会用得上。
    2015-08-08
  • layui.use模块外部使用其内部定义的js封装函数方法

    layui.use模块外部使用其内部定义的js封装函数方法

    今天小编就为大家分享一篇layui.use模块外部使用其内部定义的js封装函数方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-09-09
  • 微信小程序骨架屏的实现方法

    微信小程序骨架屏的实现方法

    本文主要介绍了微信小程序骨架屏的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-01-01
  • JavaScript实现刷新不重记的倒计时

    JavaScript实现刷新不重记的倒计时

    网上关于JavaScript实现倒计时的文章有很多,但是一般都是刷新后会重新开始计时,可是我们有的时候会需要刷新却不重新计算的倒计时,这该怎么做呢?下面我们一起来看看这种倒计时怎么实现吧。
    2016-08-08
  • JS两个数组比较,删除重复值的巧妙方法(推荐)

    JS两个数组比较,删除重复值的巧妙方法(推荐)

    下面小编就为大家带来一篇JS两个数组比较,删除重复值的巧妙方法(推荐)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-06-06
  • javascript闭包的理解

    javascript闭包的理解

    这篇文章主要介绍了js闭包的相关知识,闭包是Javascript的一个难点,但也是一个很重要的知识点,需要的朋友可以参考下
    2015-04-04
  • JavaScript中的执行环境和作用域链

    JavaScript中的执行环境和作用域链

    这篇文章主要介绍了JavaScript中的执行环境和作用域链,帮助大家更好的理解和学习JavaScript,感兴趣的朋友可以了解下
    2020-09-09
  • js字符串去重复id的实现代码

    js字符串去重复id的实现代码

    最近由于需要我们将相关id的重复的去掉,一个是客户端一个后台程序把关,这里分享下js的去重复id的实现代码
    2013-07-07
  • JS和Canvas实现图片的预览压缩和上传功能

    JS和Canvas实现图片的预览压缩和上传功能

    这篇文章主要介绍了JS和Canvas实现图片的预览压缩和上传功能,实现此功能大概有两步,第一步用户选择需要上传的图片,第二步获取图片资源压缩预览上传,具体实现代码大家参考下本文
    2018-03-03
  • 如何利用JS通过身份证号获取当事人的生日、年龄、性别

    如何利用JS通过身份证号获取当事人的生日、年龄、性别

    身份证可以识别一个人的信息,下面就介绍一下如何利用js通过身份证号码获取当事人的年龄和性别
    2016-01-01

最新评论