通用方法【一】(获取字节数 )

发表于 javascript 分类,标签:

通用方法

作者时间主要变更内容链接
wuwg2023-02-21增加获取字节数方法 getBytes(str)http://wuweigang.com/?id=385

1.获取字符串字节

  • 经过测试 /[\u4e00-\u9fa5\uf900-\ufa2d]/igm 此正则无法检测中文感叹号 !;

  • 推荐 /[^\u0000-\u00ff]/igm 取非的处理方式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32

<script>
   // 获取字节数
   function  getBytes(str){
       //  unicode编码 在正则表达式中使用 Unicode,必须使用\u开头,接着是字符编码的四位16进制表现形式
       //  u4e00-u9fbf :  unicode    CJK(中日韩)统一表意字符。   u9fa5后至u9fbf为空
       //  uF900-uFAFF :  为unicode  CJK (中日韩) 兼容象形文字  。uFA2D后至uFAFF为空
       //  \uf900-\ufa2d  区中的301个字也包括在[\u4e00-\u9fa5]里面。
       //  具体的匹配中文及字符方法:/[\u4e00-\u9fa5\uf900-\ufa2d]/
       //  [u4e00-\u9fa5]  unicode编码,是用来判断是不是中文的一个条件。
       // console.log(escape("[")
       // 中文【感叹号】!, 检测不出来(!important), 其他的测试可通过!
       // return  (str.replace(/[\u4e00-\u9fa5\uf900-\ufa2d]/igm, '11')).length;
       // 说明: //u0000-u00ff.包含unicode单字节编码( 0-255编码)
       // 包含【基本控制字符】和拉【丁文字母】。 采用该否定表达式,粗略判断是否含有中文。
       // 这种方法可以判断中文【感叹号】 !
       return  (str.replace(/[^\u0000-\u00ff]/igm, '11')).length;
   }

   window.console.log(getBytes('我是中国人!'), '=12');
   console.log('\n');
   console.log(getBytes('i am!'),'=6');
   console.log('\n');
   console.log(getBytes('【'),'=2');
   console.log('\n');
   console.log(getBytes('?'),'=2');
   console.log('\n');
   console.log(getBytes('/'),'=1');
   console.log('\n');
   console.log(getBytes('abcd!'),'5');
   console.log('\n');
</script>


0 篇评论

发表我的评论