首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >根据JavaScript中的ascii代码从字符串中删除字符

根据JavaScript中的ascii代码从字符串中删除字符
EN

Stack Overflow用户
提问于 2020-04-14 20:30:43
回答 4查看 59关注 0票数 3

如果我有一个给定的字符串,使用JavaScript,是否可以根据ASCII码从其中删除某些字符,并返回剩余的字符串,例如,从字符串中删除所有ASCII码< 22的字符?

EN

回答 4

Stack Overflow用户

发布于 2020-04-14 20:32:54

事实证明,有很多不同的解决方案,下面是一个简短的概述(从最快到最慢排序)

一个简单的for循环

代码语言:javascript
运行
复制
let finalString = "";
for(let i = 0; i < myString.length; i++ ) {
   if(myString.charCodeAt(i) < 22) continue;
   finalString += myString.charAt(i);
}

速度(基准测试):82,600次/秒±1.81%

拆分和过滤字符串后的For循环

代码语言:javascript
运行
复制
const newStringArray =  myString.split("").filter(e => e.charCodeAt(0) > 22)

let finalString = ""
for(let i = 0; i < newStringArray.length; i++ ) {
   finalString += newStringArray[i]
}

速度(基准测试):55,199次/秒±0.53%

慢33.17%

一个带.join的班轮

代码语言:javascript
运行
复制
const newString = myString.split("").filter(e => e.charCodeAt(0) >= 22).join("");

速度(基准测试):18,745次/秒±0.28%

慢77.31%

一个带.reduce的班轮

代码语言:javascript
运行
复制
const newString =  myString.split("")
  .filter(e => e.charCodeAt(0) > 22)
  .reduce( (acc, current) => acc += current, "");

速度(基准测试):17,781次/秒±0.23%

慢78.47%

基准测试

基准测试可以在这里找到:https://jsbench.me/50k8zwue1p

票数 6
EN

Stack Overflow用户

发布于 2020-04-14 20:32:59

您可以遍历字符串并对每个字母使用charCodeAt( letter ),这样您就可以知道它的ASCII码,然后就可以执行if语句了。

票数 0
EN

Stack Overflow用户

发布于 2020-04-14 20:36:56

是的,使用javascript的str.charCodeAt()方法是可能的。可以将给定的字符串转换为字符数组,然后使用map方法将每个字符与要用来比较字符串字符的ASCII代码进行比较。

这将返回一个符合条件的新数组,然后您可以连接该数组以再次形成字符串。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61207729

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档