处理大小写转换,删除字母符号,Unicode处理,URL处理等。
使用字符串可能是一项繁琐的任务,因为有许多不同的用例。例如,将字符串转换为驼峰大小写这样的简单任务可能需要几行代码才能达到最终目标。
function camelize(str) { return str.replace(/(""; // or if (/\s+/.test(match)) for white spaces return index === 0 "text-align: center">这是字符串处理库可以拯救的地方,它们使实现复杂的字符串操作变得容易,并且可以考虑给定问题的所有可能用例。这对你有帮助,因为你只需要调用一个方法即可获得有效的解决方案。
让我们看一些JavaScript的字符串处理库。
1. String.js
string.js,或者简称为 S,是一个轻量级的JavaScript库(压缩后压缩后小于5kb),用于浏览器或提供额外String方法的Node.js。
安装
npm i string值得注意的方法
between(left, right) ——提取左右串之间的字符串。尝试在HTML中的两个标签之间获取元素时可以使用此方法。
var S = require('string'); S('<a>This is a link</a>').between('<a>', '</a>').s // 'This is a link'camelize() ——删除所有下划线或破折号,并将字符串转换成驼峰式大写字母。此功能可用于解决本文开头提到的问题。
var S = require('string'); S('---Foo---bAr---').camelize().s; //'fooBar'humanize() ——将输入转换为人性化的形式。这个功能从头开始实现,肯定需要相当多的代码。
var S = require('string'); S(' capitalize dash-CamelCase_underscore trim ').humanize().s //'Capitalize dash camel case underscore trim'stripPunctuation() ——去掉给定字符串中的所有标点符号。如果你从头开始实现此功能,则很有可能会错过标点符号。
var S = require('string'); S('My, st[ring] *full* of %punct)').stripPunctuation().s; //My string full of punct你可以在此处查看更多方法。
2. Voca
Voca是一个用于处理字符串的JavaScript库。Voca库提供有用的函数来使字符串操作变得轻松自如:更改大小写,修饰,填充,弹化,拉丁化,sprintfy,截断,转义等等。模块化设计允许加载整个库或单个函数以最小化应用程序构建。该库已经过全面测试,有据可查,并得到长期支持。
安装
npm i voca值得注意的方法
Camel Case(String data)——将数据转换为驼峰格式。
var v = require('voca'); v.camelCase('foo Bar'); // => 'fooBar' v.camelCase('FooBar'); // => 'fooBar' v.camelCase('---Foo---bAr---'); // => 'fooBar'Latinise(String data)——通过删除变音符号来对数据进行拉丁化处理。
var v = require('voca'); v.latinise('cafe\u0301'); // or 'café' // => 'cafe' v.latinise('août décembre'); // => 'aout decembre' v.latinise('как прекрасен этот мир'); // => 'kak prekrasen etot mir'isAlphaDigit(String data)——检查数据是否仅包含字母和数字字符。 (字母数字)
var v = require('voca'); v.isAlphaDigit('year2020'); // => true v.isAlphaDigit('1448'); // => true v.isAlphaDigit('40-20'); // => falseCountWords(String data)——计算数据中的单词数。
var v = require('voca'); v.countWords('gravity can cross dimensions'); // => 4 v.countWords('GravityCanCrossDimensions'); // => 4 v.countWords('Gravity - can cross dimensions!'); // => 4EscapeRegExp(String data)——转义在数据中的正则表达式特殊字符 -[] / {}()* +? 。 \ ^ $ | 。
var v = require('voca'); v.escapeRegExp('(hours)[minutes]{seconds}'); // => '\(hours\)\[minutes\]\{seconds\}'你可以在此处查看更多信息。
3. Anchorme.js
这是一个微型快速Javascript库,可帮助检测文本中的链接/ URL /电子邮件,并将其转换为可单击的HTML锚链接。
- 它的灵敏度高,误报率最低。
- 它根据完整的IANA列表验证URL和电子邮件。
- 验证端口号(如果有)。
- 验证IP八位字节号(如果存在)。
- 适用于非拉丁字母URL。
安装
npm i anchorme
使用
import anchorme from "anchorme"; // 或者 // var anchorme = require("anchorme").default; const input = "some text with a link.com"; const resultA = anchorme(input); //some text with a <a href="http://link.com" rel="external nofollow" >link.com</a>
你可以传入额外的扩展来进一步定制功能。
你可以在此处查看更多信息。
4. Underscore.string
Underscore.string 是JavaScript的字符串操作扩展,可以与或不与Underscore.js一起使用。Underscore.string是一个JavaScript库,用于舒适地处理字符串,它是Prototype.js,Right.js和Underscore启发的Underscore.js扩展。
Underscore.string为你提供了几个有用的功能:大写、清除、包括、计数、escapeHTML、unescapeHTML、插入,拼接、startsWith、endsWith、标题化、修剪、截断等。
安装
npm install underscore.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() 返回字符串中的代码单元数,而不是字符数。
你可以在此处阅读有关JavaScript unicode问题的更多信息。
安装
npm install stringz
值得注意的方法
limit(string, limit, padString, padPosition)——将字符串限制为给定的宽度。
const stringz = require('stringz'); // Truncate: stringz.limit('Life's like a box of chocolates.', 20); // "Life's like a box of" // Pad: stringz.limit('Everybody loves emojis!', 26, '"Everybody loves emojis!" stringz.limit('What are you looking at"++++++What are you looking at" // Unicode Aware: stringz.limit('"" stringz.limit('""
toArray(string)——将字符串转换为数组。
const stringz = require('stringz'); stringz.toArray('abc'); // ['a','b','c'] //Unicode aware stringz.toArray('"_blank" href="https://github.com/sallar/stringz" rel="external nofollow" >此处访问其Github。
来源:blog.bitsrc.io,作者:Mahdhi Rezvi,翻译:前端外文精选
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。
更新日志
- 中国武警男声合唱团《辉煌之声1天路》[DTS-WAV分轨]
- 紫薇《旧曲新韵》[320K/MP3][175.29MB]
- 紫薇《旧曲新韵》[FLAC/分轨][550.18MB]
- 周深《反深代词》[先听版][320K/MP3][72.71MB]
- 李佳薇.2024-会发光的【黑籁音乐】【FLAC分轨】
- 后弦.2012-很有爱【天浩盛世】【WAV+CUE】
- 林俊吉.2012-将你惜命命【美华】【WAV+CUE】
- 晓雅《分享》DTS-WAV
- 黑鸭子2008-飞歌[首版][WAV+CUE]
- 黄乙玲1989-水泼落地难收回[日本天龙版][WAV+CUE]
- 周深《反深代词》[先听版][FLAC/分轨][310.97MB]
- 姜育恒1984《什么时候·串起又散落》台湾复刻版[WAV+CUE][1G]
- 那英《如今》引进版[WAV+CUE][1G]
- 蔡幸娟.1991-真的让我爱你吗【飞碟】【WAV+CUE】
- 群星.2024-好团圆电视剧原声带【TME】【FLAC分轨】