一般取字符串的长度都会用到 str.length(),.length得到的是字符长度,不是字节长度,一个汉字和一个英文字符都是算一个字符的,在不同编码格式中,汉字占用的字节是不同的,比如在GB2312中汉字是2个字节,而在UTF-8编码格式中是3个字节,所以要根据不同的编码来计算。
在js脚本中
比如在GB2312中: function getByteForGB(s) { return s.replace(/[^\u0000-\u007f]/g, "\u0061\u0061").length; } 在UTF-8中: function getByteForUTF(s) { a=s.replace(/[\u0000-\u007f]/g, "\u0061"); b=a.replace(/[\u0080-\u07ff]/g, "\u0061\u0061"); c=b.replace(/[\u0800-\uffff]/g, "\u0061\u0061\u0061"); return c.length; }
对于JAVA后台处理,例如针对utf-8编码
/** * UTF-8的情况下统计输入的字节数 * @param strValue * @return */ public static int getStrLength(String strValue) { int length = 0; int count = 0; // --------------------------oneChar String regex = "[\u0000-\u007f]"; count = getCountByRegex(regex, strValue); length += count; // --------------------------twoChar regex = "[\u0080-\u07ff]"; count = getCountByRegex(regex, strValue); length += count * 2; // --------------------------triChar // utf-8字符下,一个汉字占3个字节 regex = "[\u0800-\uffff]"; count = getCountByRegex(regex, strValue); length += count * 3; return length; } /** * 根据正则获取匹配到得字符数量 * @param regex 正则表达式 * @param strValue * @return */ public static int getCountByRegex(String regex, String strValue) { int count = 0; Pattern p = Pattern.compile(regex); Matcher m = p.matcher(strValue); while (m.find()) { count++; } return count; }
相关推荐
TIA博途WINCC的触摸屏VB脚本入门(Len函数获取字符串长度以及Right和Left函数)
这是我做C++项目是碰到的一些字符串方面的问题,将其总结归纳一下,希望对你有所帮助! 字符串的长度通常是指字符串中包含字符的数目,但有的时候人们需要的是字符串所占...常见的获取字符串长度的方法包括如下几种。
java获取字符串长度,长度不够补相应的字符串
常见的VC获取字符串长度的方法[定义].pdf
C语言写的一些字符串处理函数,包括连接,查找重复字符和获取字符串长度
用指针计算字符串长度,简单的小程序,c语言
自己输入一个字符串,字符串中可以包括字符和汉字,截取指定的字符串
This is a bat file that can get a string length, and without using any other tools, it can make this happen by windows dos command only. Usage: stringlen.bat 1234567890 return:StringLenth=10 ...
一个JS函数,可以获取你当前输入的字符串的长度,其中中文字符和全角字符是2个长度
length: 是计算字段的长度一个汉字是算三个字符,一个数字或字母算一个字符CHAR_LENGTH(str) 返回值为字符串str 的长度,长度的单位为字符。一个多字节字符算作一个单字符。对于一个包含五个二字节字符集, LENGTH()...
前言 我们在日常工作中,对于求字符串操作在shell...【方法三】:利用awk的NF项来获取字符串长度 备注: -F为分隔符,NF为域的个数,即单行字符串的长度 【方法四】:利用wc的-L参数来获取字符串的长度 备注: -L参数
这个代码可以计算字符串数组中每个字符串的长度,并找出其中最长的字符串长度。具体来说,它首先创建了一个包含5个字符串的字符串数组`strArray`,然后使用`length()`函数计算每个字符串的长度,并将结果存储在向量`...
获取中文字符串长度的函数(VB6.0源代码编写)获取中文字符串长度的函数,输入汉字,计算机将会计算汉字长度Function CLen(ByVal mystr As String) As Integer
获取字符串长度: NSString *str = @"Objective-C"; NSUInteger length = [str length]; // 获取字符串长度 字符串拼接: NSString *str1 = @"Hello, "; NSString *str2 = @"World!"; NSString *combinedStr = [str1...
获取中文字符串长度的函数(VB6.0代码编写) 获取中文字符串长度的函数,输入汉字,计算机将会计算汉字长度 QQ223857666勾月
USER_NAME to UserName,USER_NAME to userName,转义正则特殊字符 ,获取字符串长度汉字占两个字符,验证号码是否合法 (是否是手机号或者电话号码),将经纬度转换成字符串,将字符转换成二进制,将二进制字符串...
我们知道在.NET中,可以使用String.Length方法来获取字符串的长度,让我们看看PowerShell中怎么样依葫芦画瓢。 代码如下: $string = “1234567”; Write-Host $string.Length; #输出为7 如果你像小编一样懒,你...
很多人喜欢用CString 或std:string,但是他们的缺点是不能完成汉字各种类型之间的转换,提供三种类库ascString,ucsString,utfString以及工具utfCount,utf8_ucs2_t,tcf8_ucs4_t类库,用于各种字符串之间的直接转换`...