当前位置: 首页 > 科技观察

5个JavaScript字符串操作库

时间:2023-03-13 07:41:50 科技观察

使用字符串可能是一项乏味的任务,因为有许多不同的用例。例如,将字符串转换为驼峰式大小写这样的简单任务可能需要几行代码才能达到最终目标。functioncamelize(str){returnstr.replace(/(?:^\w|[A-Z]|\b\w|\s+)/g,function(match,index){if(+match===0)return"";//orif(/\s+/.test(match))forwhitespacesreturnindex===0?match.toLowerCase():match.toUpperCase();});}上面的代码片段是StackOverflow中投票最多的答案。但这也没有解决字符串是----Foo----bAr-----的情况。这就是字符串处理库的用武之地,它们可以轻松实现复杂的字符串操作,并且可以考虑给定问题的所有可能用例。这对您有帮助,因为您只需调用一种方法即可获得有效的解决方案。让我们看看一些JavaScript字符串操作库。1.String.jsstring.js,简称S,是一个轻量级的JavaScript库(压缩后小于5kb),用于浏览器或Node.js,提供额外的String方法。(1)安装:npmistring(2)值得注意的方法:between(left,right)-提取左右字符串之间的字符串。当尝试获取HTML中两个标记之间的元素时,可以使用此方法。varS=require('string');S('Thisalink').between('','').s//'Thisalink'camelize()——删除任何下划线或破折号,并将字符串转换为驼峰式大写字母。这个特性可以用来解决本文开头提到的问题。varS=require('string');S('---Foo---bAr---').camelize().s;//'fooBar'humanize()-将输入转换为人性化形式。从头开始实现此功能当然需要相当多的代码。varS=require('string');S('capitalizedash-CamelCase_underscoretrim').humanize().s//'Capitalizedashcamelcaseunderscoretrim'stripPunctuation()-去除给定字符串中的所有标点符号。如果您从头开始实施,您很可能会错过标点符号。varS=require('string');S('My,st[ring]*full*of%punct)').stripPunctuation().s;//mystringfullofpunct更多方法可以去官网查看。2.Vocahttps://vocajs.comVoca是一个用于处理字符串的JavaScript库。Voca库提供了使字符串操作变得轻而易举的有用函数:更改大小写、修剪、填充、反弹、拉丁化、sprintfy、截断、转义等。模块化设计允许加载整个库或单个功能,以最大限度地减少应用程序构建。该库经过全面测试、文档齐全且得到长期支持。(1)安装npmivoca(2)值得注意的方法CamelCase(Stringdata)-将数据转换为驼峰格式。varv=require('voca');v.camelCase('fooBar');//=>'fooBar'v.camelCase('FooBar');//=>'fooBar'v.camelCase('---Foo--酒吧--');//=>'fooBar'Latinise(Stringdata)-通过删除变音符号将数据拉丁化。varv=require('voca');v.latinise('cafe\\u0301');//或'café'//=>'cafe'v.latinise('ao?tdécembre');//=>'aoutdecembre'v.latinise('какпрекрасенэтотмир');//=>'kakprekrasenetotmir'isAlphaDigit(Stringdata)-检查数据是否只包含字母和数字字符。(字母数字)varv=require('voca');v.isAlphaDigit('year2020');//=>truev.isAlphaDigit('1448');//=>truev.isAlphaDigit('40-20');//=>falseCountWords(Stringdata)-计算数据中的单词数。varv=require('voca');v.countWords('gravitycancrossdimensions');//=>4v.countWords('GravityCanCrossDimensions');//=>4v.countWords('Gravity-cancrossdimensions!');//=>4EscapeRegExp(Stringdata)——转义数据中的正则表达式特殊字符-[]/{}()*+?.\^$|.varv=require('voca');v.escapeRegExp('(hours)[minutes]{seconds}');//=>'\(hours\)\[minutes\]\{seconds\}'3.锚点.jshttps://alexcorvi.github.io/anchorme.js/这是一个小型快速Javascript库,可帮助检测文本中的链接/URL/电子邮件并将它们转换为可点击的HTML锚链接。它具有高灵敏度和最低的假阳性率。它根据完整的IANA列表验证URL和电子邮件。验证端口号(如果有)。验证IP八位字节数(如果存在)。适用于非拉丁字母URL。(1)安装npmianchorme(2)使用importanchormefrom"anchorme";//或//varanchorme=require("anchorme").default;constinput="sometextwithalink.com";constresultA=anchorme(input);//sometextwithalink.com您可以传入额外的扩展以进一步自定义功能。4.Underscore.stringhttp://gabceb.github.io/underscore.string.site/Underscore.string是JavaScript的字符串操作扩展,可以使用或不使用Underscore.js。Underscore.string是一个用于舒适地处理字符串的JavaScript库,它是一个受Prototype.js、Right.js和Underscore启发的Underscore.js扩展。underscore.string为你提供了几个有用的功能:capitalize,clear,include,count,escapeHTML,unescapeHTML,insert,splice,startsWith,endsWith,title,trim,truncate等。(一)安装npminstallunderscore.string(二)值得注意的方法numberFormat(number)-格式化数字。将数字格式化为带有小数点和顺序分隔符的字符串。var_=require("underscore.string");_.numberFormat(1000,3)=>"1,000.000"_.numberFormat(123456789.123,5,'.',',');=>"123,456,789.12300"chop(string,step)-将给定的字符串切成小块。var_=require("underscore.string");_.chop('whitespace',3);=>['whi','tes','pac','e']5.Stringz这个库的主要亮点是支持unicode。如果我运行以下代码,输出为2。"".length//->2这是因为String.length()返回字符串中的代码单元数,而不是字符数。(1)安装npminstallstringz(2)值得注意的方法limit(string,limit,padString,padPosition)——将字符串限制到给定的宽度。conststringz=require('stringz');//Truncate:stringz.limit('Life'slikeaboxofchocolates.',20);//"Life'slikeaboxof"//Pad:stringz.limit('Everybodylovesemojis!',26,'');//"Everybodylovesemojis!"stringz.limit('Whatareyoulookingat?',30,'+','left');//"++++++Whatareyoulookingat?"//UnicodeAware:stringz.limit('',2);//""stringz.limit('',4,'');//""toArray(string)-将字符串转换为数组。conststringz=require('stringz');stringz.toArray('abc');//['a','b','c']//Unicodeawarestringz.toArray('');//['','','']要了解有关Stringz的更多信息,请访问其Github。