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 ...
随机推荐
- (原创)OpenStack服务如何使用Keystone(一)---Keystone端的操作
(一)Keystone端的操作 (二)如何在OpenStack服务上部署Keystone中间件 (三)详细配置keystonemiddleware OpenStack项目如果要使用Keystone作为 ...
- C# Retrieving the COM class factory for component with CLSID {00024500-0000-0000-C000-000000000046} failed due to the following error: 80070005
环境说明: Win2008 R2(中文版) x64 .IIS 7.0 功能说明:上传Excel到服务器,并在服务器端读取Excel中的数据: 异常信息:Retrieving the COM class ...
- 【WP8】ScrollViewer滑动到底触发器(ListBox失效)
很多时候会有到底加载更多的需求,而ScrollViewer不支持继承,无法继承它进行扩展,只能通过触发器来控制到底的事件(当然,可以通过UserControl去扩展) 思路:定义一个Trigger,自 ...
- Lua环境配置和工具介绍
官网地址:http://www.lua.org/ Lua环境配置方式: (一)环境变量配置方式: (1)官网下载LuaDist,并解压缩到 c:\ (目录可自定义) 例如:C:\ environmen ...
- java学习之maven
maven是项目构建工具,能把项目抽象成POM(Project Object Model) Maven使用POM对项目进行构建.打包.文档化等操作 解决了项目需要类库的依赖管理,简化了项目开发环境搭建 ...
- Linux安装bundle
安装bundle文件的方法: cd 到文件目录再用sudo chmod +x XXXXXXX.bundle 加权限最后 ./XXXXXXXX.bundle 就行了. 第一步:sudo chmod +x ...
- HTML5标签canvas图像处理
摘要: canvas可以读取图片后,使用drawImage方法在画布内进行重绘.本文介绍canvas的图像处理 drawImage drawImage() 方法在画布上绘制图像.画布或视频.drawI ...
- iOS: 解决某些第三方库因为ARC不能使用的问题
1.在target下面的build phases下有一个compile source,下面有很多待编译文件.可以看到一个compile flag,可以针对某些文件进行arc设置.这样,某些框架不能使用 ...
- Uva--11324--The Largest Clique【有向图强连通分量】
链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&am ...
- Hibernate_day03讲义_使用Hibernate完成多对多的关系映射并操作