zoukankan      html  css  js  c++  java
  • JS方法

    一、计算一段字符串的字节长度

    字符串的charCodeAt()方法,
    可返回字符串固定位置的字符的Unicode编码,这个返回值是0-65535之间的整数,如果值<=255时为英文,反之为中文。
    而,中文的字节长度为2,英文的字节长度为1。
    依照这个规律封装如下:
     1 function getStrBytes(str){
     2       str = str.toString();
     3       var strLen = 0;
     4       for (let s = 0; s < str.length; s++) {
     5         if(str.charCodeAt(s) >= 255){
     6           // 中文,字节为2.
     7           strLen += 2;
     8         }else{
     9           // 非中文,字节为1.
    10           strLen += 1;
    11         }
    12       }
    13       return strLen;
    14     }

    简化写法:(思路是,初始化时,默认就把字符串的长度等于字节长度。遇到中文的时候,字节长度+1)

     1 function getStrBytes(str){
     2       str = str.toString();
     3       var strLen, 
     4           count;
     5           strLen = count= str.length;
     6       for (let s = 0; s < strLen; s++) {
     7         if(str.charCodeAt(s) >= 255)
     8           count ++;
     9       }
    10       return count;
    11 }

    调用方法:

    getStrBytes("gjf32425");

    二、计算输入文本框的字符个数

    这个功能很常见,在评论区内一般会限制输入文字个数,

    多用于textarea右下角的数字提示器功能,提示用户输入的文字个数。

    利用上边计算出的字符串的字节,除以2取整就可以粗略当做用户的字符个数。

    1 function getStrNum(str){
    2    return Math.ceil(getStrBytes(str)/2);
    3 }

    调用:

    getStrNum("继续努力加油!!耶!");

     

     三、找出一段字符串中出现次数最多的那个字符

    2018-10-23 18:45:46

    思路:把字符串切割成数组进行遍历,这样就成了数组查重。

    然后在数组遍历过程中,将每一项拷贝到一个对象中,

    数组的每一项作为对象的key。key对应的初始键值为1(或者key对应的值都为数组)。

    如果对象中已有这个key,则对应的val+1(或者val为数组时,直接将此字符当作值push到val中)

    最后遍历对象,排查每个key,找出val值最大(为数组时找出数组长度最大)的对应key,就是我们要找的那个字符:

     1     function getStrMax(str){
     2       let array = str.split(""),
     3           result = "",
     4           count = 0
     5           obj = {};
     6       for (let i = 0; i < array.length; i++) {
     7         if(!obj[array[i]]){
     8           obj[array[i]] = 1;//如果当前对象中没有这个字符,则对应值初始为1
     9         }else{
    10           obj[array[i]] += 1;//如果有,则对应值加一次
    11         }
    12       }
    13       for (const key in obj) {
    14         if (obj[key] > count) {
    15           result = key;
    16           count = obj[key];
    17         }
    18       }
        return result;
    19 }

    最后调用:

    1 var str = "xing.org1^";
    2 var maxStr = getStarMax(str);得到最终那个字符
  • 相关阅读:
    【软件工程】软件测试目标定义 黑盒测试、白盒测试
    【计算机网络】互联网的组成(客户服务器、对等连接、电路交换、分组交换)
    【计算机网络】互联网概述
    文本域的宽度和高度应该用cols和rows来控制,还是 用width和height来控制
    javascript代码片段
    IE对象最后一个属性后不要加逗号,否则在IE7及以下版本中会报错
    检测IE浏览器方法
    Sublime Text 必备插件
    浅谈Javascript 中几种克隆(clone)方式
    JavaScript instanceof 运算符深入剖析
  • 原文地址:https://www.cnblogs.com/padding1015/p/9825160.html
Copyright © 2011-2022 走看看