文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

5个JavaScript的字符串处理库

2024-12-24 17:59

关注
  1. function camelize(str) { 
  2.   return str.replace(/(?:^\w|[A-Z]|\b\w|\s+)/g, function(match, index) { 
  3.     if (+match === 0) return ""; // or if (/\s+/.test(match)) for white spaces 
  4.     return index === 0 ? match.toLowerCase() : match.toUpperCase(); 
  5.   }); 

上面的代码片段是 StackOverflow 中投票最多的答案。但这也没有解决字符串为 ----Foo----bAr----- 的情况。

这是字符串处理库可以拯救的地方,它们使实现复杂的字符串操作变得容易,并且可以考虑给定问题的所有可能用例。这对你有帮助,因为你只需要调用一个方法即可获得有效的解决方案。

让我们看一些JavaScript的字符串处理库。

1. String.js

string.js,或者简称为 S,是一个轻量级的JavaScript库(压缩后压缩后小于5kb),用于浏览器或提供额外String方法的Node.js。

(1) 安装:

  1. npm i string 

(2) 值得注意的方法:

between(left, right) ——提取左右串之间的字符串。尝试在HTML中的两个标签之间获取元素时可以使用此方法。

  1. var S = require('string'); 
  2. S('<a>This is a linka>').between('<a>', 'a>').s  
  3. // 'This is a link' 

camelize() ——删除所有下划线或破折号,并将字符串转换成驼峰式大写字母。此功能可用于解决本文开头提到的问题。

  1. var S = require('string'); 
  2. S('---Foo---bAr---').camelize().s;  
  3. //'fooBar' 

humanize() ——将输入转换为人性化的形式。这个功能从头开始实现,肯定需要相当多的代码。

  1. var S = require('string'); 
  2. S('   capitalize dash-CamelCase_underscore trim  ').humanize().s  
  3. //'Capitalize dash camel case underscore trim' 

stripPunctuation() ——去掉给定字符串中的所有标点符号。如果你从头开始实现此功能,则很有可能会错过标点符号。

  1. var S = require('string'); 
  2. S('My, st[ring] *full* of %punct)').stripPunctuation().s;  
  3. //My string full of punct 

你可以在官方网站查看更多方法。

2. Voca

https://vocajs.com

Voca是一个用于处理字符串的JavaScript库。Voca库提供有用的函数来使字符串操作变得轻松自如:更改大小写,修饰,填充,弹化,拉丁化,sprintfy,截断,转义等等。模块化设计允许加载整个库或单个函数以最小化应用程序构建。该库已经过全面测试,有据可查,并得到长期支持。

(1) 安装

  1. npm i voca 

(2) 值得注意的方法

Camel Case(String data)——将数据转换为驼峰格式。

  1. var v = require('voca'); 
  2. v.camelCase('foo Bar'); 
  3. // => 'fooBar' 
  4.  
  5. v.camelCase('FooBar'); 
  6. // => 'fooBar' 
  7.  
  8. v.camelCase('---Foo---bAr---'); 
  9. // => 'fooBar' 

Latinise(String data)——通过删除变音符号来对数据进行拉丁化处理。

  1. var v = require('voca'); 
  2. v.latinise('cafe\\u0301'); // or 'café' 
  3. // => 'cafe' 
  4.  
  5. v.latinise('août décembre'); 
  6. // => 'aout decembre' 
  7.  
  8. v.latinise('как прекрасен этот мир'); 
  9. // => 'kak prekrasen etot mir' 

isAlphaDigit(String data)——检查数据是否仅包含字母和数字字符。 (字母数字)

  1. var v = require('voca'); 
  2. v.isAlphaDigit('year2020'); 
  3. // => true 
  4.  
  5. v.isAlphaDigit('1448'); 
  6. // => true 
  7.  
  8. v.isAlphaDigit('40-20'); 
  9. // => false 

CountWords(String data)——计算数据中的单词数。

  1. var v = require('voca'); 
  2. v.countWords('gravity can cross dimensions'); 
  3. // => 4 
  4.  
  5. v.countWords('GravityCanCrossDimensions'); 
  6. // => 4 
  7.  
  8. v.countWords('Gravity - can cross dimensions!'); 
  9. // => 4 

EscapeRegExp(String data)——转义在数据中的正则表达式特殊字符 -[] / {}()* +? 。 \ ^ $ | 。

  1. var v = require('voca'); 
  2. v.escapeRegExp('(hours)[minutes]{seconds}'); 
  3. // => '\(hours\)\[minutes\]\{seconds\}' 

3. Anchorme.js

https://alexcorvi.github.io/anchorme.js/

这是一个微型快速Javascript库,可帮助检测文本中的链接/ URL /电子邮件,并将其转换为可单击的HTML锚链接。

(1) 安装

  1. npm i anchorme 

(2) 使用

  1. import anchorme from "anchorme";  
  2. // 或者 
  3. // var anchorme = require("anchorme").default; 
  4. const input = "some text with a link.com";  
  5. const resultA = anchorme(input); 
  6. //some text with a <a href="http://link.com">link.coma> 

你可以传入额外的扩展来进一步定制功能。

4. Underscore.string

http://gabceb.github.io/underscore.string.site/

Underscore.string 是JavaScript的字符串操作扩展,可以与或不与Underscore.js一起使用。Underscore.string是一个JavaScript库,用于舒适地处理字符串,它是Prototype.js,Right.js和Underscore启发的Underscore.js扩展。

Underscore.string为你提供了几个有用的功能:大写、清除、包括、计数、escapeHTML、unescapeHTML、插入,拼接、startsWith、endsWith、化、修剪、截断等。

(1) 安装

  1. npm install underscore.string 

(2) 值得注意的方法

numberFormat(number)——格式化数字。将数字格式化为带小数点和顺序分隔的字符串。

  1. var _ = require("underscore.string"); 
  2. _.numberFormat(1000, 3) 
  3. => "1,000.000" 
  4. _.numberFormat(123456789.123, 5, '.', ','); 
  5. => "123,456,789.12300" 

chop(string, step)——将给定的字符串切成小块。

  1. var _ = require("underscore.string"); 
  2. _.chop('whitespace', 3); 
  3. => ['whi','tes','pac','e'] 

5. Stringz

该库的主要亮点是它支持unicode。如果运行以下代码,则输出为2。

  1. "".length 
  2. // -> 2 

这是因为 String.length() 返回字符串中的代码单元数,而不是字符数。

(1) 安装

  1. npm install stringz 

(2) 值得注意的方法

limit(string, limit, padString, padPosition)——将字符串限制为给定的宽度。

  1. const stringz = require('stringz'); 
  2. // Truncate: 
  3. stringz.limit('Life’s like a box of chocolates.', 20);  
  4. // "Life's like a box of" 
  5.  
  6. // Pad: 
  7. stringz.limit('Everybody loves emojis!', 26, '');  
  8. // "Everybody loves emojis!" 
  9. stringz.limit('What are you looking at?', 30, '+', 'left');  
  10. // "++++++What are you looking at?" 
  11.  
  12. // Unicode Aware: 
  13. stringz.limit('', 2);  
  14. // "" 
  15. stringz.limit('', 4, '');  
  16. // "" 

toArray(string)——将字符串转换为数组。

  1. const stringz = require('stringz'); 
  2. stringz.toArray('abc'); 
  3. // ['a','b','c'] 
  4. //Unicode aware 
  5. stringz.toArray(''); 
  6. // ['', '', ''] 

要了解有关Stringz的更多信息访问其Github。

 

来源:今日头条内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯