JS方法 - 字符串处理函数封装汇总 (更新中...)
一、计算一段字符串的字节长度
function getStrBytes(str){
str = str.toString();
var strLen = 0;
for (let s = 0; s < str.length; s++) {
if(str.charCodeAt(s) >= 255){
// 中文,字节为2.
strLen += 2;
}else{
// 非中文,字节为1.
strLen += 1;
}
}
return strLen;
}
简化写法:(思路是,初始化时,默认就把字符串的长度等于字节长度。遇到中文的时候,字节长度+1)
function getStrBytes(str){
str = str.toString();
var strLen,
count;
strLen = count= str.length;
for (let s = 0; s < strLen; s++) {
if(str.charCodeAt(s) >= 255)
count ++;
}
return count;
}
调用方法:
getStrBytes("gjf32425");
二、计算输入文本框的字符个数
这个功能很常见,在评论区内一般会限制输入文字个数,
多用于textarea右下角的数字提示器功能,提示用户输入的文字个数。
利用上边计算出的字符串的字节,除以2取整就可以粗略当做用户的字符个数。
function getStrNum(str){
return Math.ceil(getStrBytes(str)/2);
}
调用:
getStrNum("继续努力加油!!耶!");
三、找出一段字符串中出现次数最多的那个字符
2018-10-23 18:45:46
思路:把字符串切割成数组进行遍历,这样就成了数组查重。
然后在数组遍历过程中,将每一项拷贝到一个对象中,
数组的每一项作为对象的key。key对应的初始键值为1(或者key对应的值都为数组)。
如果对象中已有这个key,则对应的val+1(或者val为数组时,直接将此字符当作值push到val中)
最后遍历对象,排查每个key,找出val值最大(为数组时找出数组长度最大)的对应key,就是我们要找的那个字符:
function getStrMax(str){
let array = str.split(""),
result = "",
count = 0
obj = {};
for (let i = 0; i < array.length; i++) {
if(!obj[array[i]]){
obj[array[i]] = 1;//如果当前对象中没有这个字符,则对应值初始为1
}else{
obj[array[i]] += 1;//如果有,则对应值加一次
}
}
for (const key in obj) {
if (obj[key] > count) {
result = key;
count = obj[key];
}
}
return result;
}
最后调用:
var str = "xing.org1^";
var maxStr = getStarMax(str);得到最终那个字符
JS方法 - 字符串处理函数封装汇总 (更新中...)的更多相关文章
- js 把字符串变成函数
js 把字符串变成函数 eval("(" + fieldEventss[1]+")");
- 网站开发进阶(二十二)HTML UI知识汇总(更新中...)
HTML知识汇总(更新中...) 1.<iframe> 标签 浏览器支持 所有浏览器都支持 <iframe> 标签. 定义和用法 iframe 元素会创建包含另外一个文档的内联 ...
- js中将字符串作为函数名来调用的方法
方法:eval() eg: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> ...
- js节流与防抖函数封装
js节流与防抖函数封装 常见应用场景: window的 resize 和 scroll 事件: 文字输入时的 keyup 事件: 元素拖拽.移动时的 mousemove 事件: 防抖 定义:多次触发事 ...
- html2canvas - 项目中遇到的那些坑点汇总(更新中...)
截图模糊 原理就是讲canvas画布的width和height放大两倍. 后来学习canvas的时候,才了解到这种写法不同于css的宽高设置, 因为css里的只是展示画布显示的大小,不像这样是c ...
- js学习笔记19----getElementsByClassName函数封装
js里面的getElementsByClassName()方法可通过某个class名获取到元素,在标准浏览器下可使用,在非标准浏览器下不可用.为了能够让这个方法兼容所有的浏览器,可以封装成如下函数: ...
- js 有关字符串的函数 以及一些和字符串有关的知识
JS自带函数 concat 将两个或多个字符的文本组合起来,返回一个新的字符串. var a = "hello"; var b = ",world"; var ...
- JS防抖与节流函数封装
防抖 在监听scroll事件的时候经常会用到防抖,当滚动到某一位置而触发状态,从而不会出现频繁滚动持续触发事件的情况 防抖的事件处理机制仅触发一次且必须是结束状态下才会执行 function debo ...
- Vue.js用法详解(一)更新中~
前 言 前段时间为了一个数据查询的项目自学了Vue,感觉这款框架还是很不错的,今天就整理整理这个框架如何使用,希望对正在学这个框架的小伙伴有所帮助~ 首先,我们先来了解一下Vue: Vue.js ...
随机推荐
- bioerl 获取gi号
代码示例: use Bio::DB::EUtilities; my @ids = qw(CAB02640 EAS10332 YP_250808 NP_623143 P41007); my $facto ...
- unity3d 获取游戏对象详解
原文地址:http://www.xuanyusong.com/archives/2768 我觉得Unity里面的Transform 和 GameObject就像两个双胞胎兄弟一样,这俩哥们很要好,我能 ...
- 使用阿里云的maven私服的setting.xml, 提高maven项目jar下载速度
下载: http://files.cnblogs.com/files/007sx/settings.zip 然后替换自己原本maven的配置文件. 如下载失败,可内容替换: <?xml vers ...
- 【转】Spring Boot干货系列:常用属性汇总
转自Spring Boot干货系列:常用属性汇总 附录A.常用应用程序属性 摘自:http://docs.spring.io/spring-boot/docs/current/reference/ht ...
- iptables规则备份和恢复 firewalld的9个zone firewalld关于zone的操作 firewalld关于service的操作
iptables规则备份和恢复 保存和备份iptables规则Service iptables save //会把规则保存到/etc/sysconfig/iptables把iptables规则备份到m ...
- js sendBeacon
页面性能日志: DNS解析耗时 TCP链接耗时 SSL安全链接耗时 网络请求耗时 DOM解析耗时 资源加载耗时 首包时间 白屏时间 首次可交换时间 Dom Ready时间 页面完全加载时间. 如某些统 ...
- 获取GridView中RowCommand的当前索引行(转)
获取GridView中RowCommand的当前索引行 前台添加一模版列,里面添加一个LinkButton 前台 (如果在后台代码中用e.CommandArgument取值的话前台代码就必须在按钮中设 ...
- 最新Java校招面试题及答案
本文作者在一年之内参加过多场面试,应聘岗位均为 Java 开发方向.在不断的面试中,分类总结了 Java 开发岗位面试中的一些知识点. 主要包括以下几个部分: Java 基础知识点 Java 常见集合 ...
- JIRA 初体验
JIRA 使用神奇的JQL查询数据,很nice啊 ! 官网API: https://docs.atlassian.com/jira/REST/latest/#d2e2344 测试一下search: ...
- Timeout in android httpclient
原文: http://www.cnblogs.com/codingmyworld/archive/2011/08/17/2141706.html /* 从连接池中取连接的超时时间 */ConnMana ...