<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          推薦 5 個(gè) JavaScript 字符串插件庫(kù)

          共 5059字,需瀏覽 11分鐘

           ·

          2021-10-26 11:48

          英文 | https://blog.bitsrc.io/5-string-manipulation-libraries-for-javascript-9ca5da8b4eb8

          翻譯 | 楊小二


          使用字符串可能是一項(xiàng)繁瑣的任務(wù),因?yàn)橛性S多不同的用例。例如,將字符串轉(zhuǎn)換為駝峰式大小寫這樣的簡(jiǎn)單任務(wù)可能需要幾行代碼才能實(shí)現(xiàn)最終目標(biāo)。
          function camelize(str) {  return str.replace(/(?:^\w|[A-Z]|\b\w|\s+)/g, function(match, index) {    if (+match === 0) return ""; // or if (/\s+/.test(match)) for white spaces    return index === 0 ? match.toLowerCase() : match.toUpperCase();  });}

          上面的代碼片段是 StackOverflow 中投票最多的答案。但這也無(wú)法解決字符串為 ---Foo---bAr--- 的情況。

          這就是字符串操作庫(kù)可以派上用場(chǎng)的地方。它們可以輕松實(shí)現(xiàn)復(fù)雜的字符串操作,并且還可以考慮給定問(wèn)題的所有可能用例。這對(duì)你有幫助,因?yàn)槟阒恍枰{(diào)用一個(gè)方法即可獲得有效的解決方案。

          讓我們看看一些用于 JavaScript 的字符串操作庫(kù)。

          1、String.js

          string.js或簡(jiǎn)稱 S ,它是一個(gè)輕量級(jí)(文件< 5 kb )JavaScript 庫(kù),用于瀏覽器或 Node.js,提供額外的 String 方法。

          安裝

          npm i string

          值得注意的方法:

          • between(left, right) — 在左右字符串之間提取一個(gè)字符串。

          這可以在嘗試獲取 HTML 中兩個(gè)標(biāo)簽之間的元素時(shí)使用。

          var S = require('string');S('<a>This is a link</a>').between('<a>', '</a>').s // 'This is a link'
          • camelize() — 刪除所有下劃線或破折號(hào),并將字符串轉(zhuǎn)換為駝峰式大小寫。

          這個(gè)函數(shù)可以用來(lái)解決本文開(kāi)頭提到的問(wèn)題。

          var S = require('string');S('---Foo---bAr---').camelize().s; //'fooBar'
          • humanize() — 將輸入轉(zhuǎn)換為人性化的形式。

          這個(gè)從頭開(kāi)始實(shí)現(xiàn)的功能肯定需要相當(dāng)多的代碼行。

          var S = require('string');S('   capitalize dash-CamelCase_underscore trim  ').humanize().s //'Capitalize dash camel case underscore trim'
          • stripPunctuation() — 去除給定字符串中的所有標(biāo)點(diǎn)符號(hào)。

          如果你從頭開(kāi)始實(shí)現(xiàn)此功能,你很可能會(huì)錯(cuò)過(guò)標(biāo)點(diǎn)符號(hào)。

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

          2、Voca

          Voca 是一個(gè) JavaScript 字符串操作庫(kù)。Voca 庫(kù)中提供了 Change case、trim、pad、slugify、latinise、sprintf’y、truncate、escape 和其他有用的字符串操作方法。為了減少應(yīng)用程序構(gòu)建,模塊化設(shè)計(jì)允許你加載完整的庫(kù)或特定功能。

          該庫(kù)已經(jīng)過(guò)全面測(cè)試,有據(jù)可查,并提供長(zhǎng)期支持。

          安裝

          npm i voca

          值得注意的方法

          • Camel Case(字符串?dāng)?shù)據(jù))

          將數(shù)據(jù)轉(zhuǎn)換為駝峰式大小寫。

          var v = require('voca');v.camelCase('foo Bar');// => 'fooBar'v.camelCase('FooBar');// => 'fooBar'v.camelCase('---Foo---bAr---');// => 'fooBar'
          • Latinise(字符串?dāng)?shù)據(jù))

          通過(guò)刪除變音符號(hào)對(duì)數(shù)據(jù)進(jìn)行Latinise。

          var v = require('voca');v.latinise('cafe\u0301'); // or 'cafe?'// => 'cafe'v.latinise('ao?t décembre');// => 'aout decembre'v.latinise('как прекрасен этот мир');// => 'kak prekrasen etot mir'
          • isAlphaDigit(字符串?dāng)?shù)據(jù))

          檢查數(shù)據(jù)是否僅包含字母和數(shù)字字符。(字母數(shù)字)

          var v = require('voca');v.isAlphaDigit('year2020');// => truev.isAlphaDigit('1448');// => truev.isAlphaDigit('40-20');// => false
          • CountWords(字符串?dāng)?shù)據(jù))

          計(jì)算數(shù)據(jù)中的字?jǐn)?shù)。

          var v = require('voca');v.countWords('gravity can cross dimensions');// => 4v.countWords('GravityCanCrossDimensions');// => 4v.countWords('Gravity - can cross dimensions!');// => 4
          • EscapeRegExp(字符串?dāng)?shù)據(jù))

          轉(zhuǎn)義正則表達(dá)式特殊字符 - [ ] / { } ( ) * + ? . \ ^ $ | 在數(shù)據(jù)中。

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

          更多內(nèi)容地址:https://vocajs.com。

          3、Anchorme.js

          這是一個(gè)小巧、快速的 Javascript 庫(kù),可幫助檢測(cè)文本中的鏈接 / URL / 電子郵件并將它們轉(zhuǎn)換為可點(diǎn)擊的 HTML 錨鏈接。

          它高度敏感,誤報(bào)最少。

          它根據(jù)完整的 IANA 列表驗(yàn)證 URL 和電子郵件。

          驗(yàn)證端口號(hào)(如果存在)。

          驗(yàn)證 IP 八位字節(jié)數(shù)(如果存在)。

          適用于非拉丁字母 URL。

          安裝

          npm i anchorme

          用法

          import anchorme from "anchorme"; //or //var anchorme = require("anchorme").default;const input = "some text with a link.com"; const resultA = anchorme(input);//some text with a <a >link.com</a>

          你可以傳入其他擴(kuò)展以進(jìn)一步自定義該功能。

          4、Underscore.string

          Underscore.string 是 JavaScript 的字符串操作擴(kuò)展,你可以使用或不使用 Underscore.js。Underscore.string 是一個(gè) JavaScript 庫(kù),用于輕松處理字符串,是受 Prototype.js、Right.js 和 Underscore 啟發(fā)的 Underscore.js 擴(kuò)展。

          Underscore.string 為你提供了幾個(gè)有用的功能:capitalize、clean、includes、count、escapeHTML、unescapeHTML、insert、splice、startsWith、endsWith、titleize、trim、truncate 等等。

          安裝

          npm install underscore.string

          值得注意的方法

          • numberFormat(number) — 格式化數(shù)字

          將數(shù)字格式化為帶有十進(jìn)制和順序分隔的字符串。

          var _ = require("underscore.string");_.numberFormat(1000, 3)=> "1,000.000"_.numberFormat(123456789.123, 5, '.', ',');=> "123,456,789.12300"
          • levenshtein(string1,string2) — 計(jì)算兩個(gè)字符串之間的 Levenshtein 距離。

          在此處了解有關(guān) levenshtein 距離算法的更多信息。

          var _ = require("underscore.string");_.levenshtein('kitten', 'kittah');=> 2
          • chop(string, step) — 將給定的字符串切成小塊。

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

          了解有關(guān)下劃線字符串的更多信息地址:http://gabceb.github.io/underscore.string.site/#chop

          5、Stringz

          這個(gè)庫(kù)的主要亮點(diǎn)是它是 unicode 感知的。如果你運(yùn)行下面的代碼,輸出將為 2。

          "??".length// -> 2

          這是因?yàn)?String.length() 返回字符串中的代碼單元數(shù),而不是字符數(shù)。實(shí)際上,在 010000–03FFFF 和 040000–10FFFF 范圍內(nèi)的某些字符每個(gè)代碼點(diǎn)最多可以使用 4 個(gè)字節(jié)(32 位),但這不會(huì)改變答案:某些字符需要超過(guò) 2 個(gè)字節(jié)才能表示,因此它們需要1個(gè)以上的代碼點(diǎn)。

          閱讀有關(guān) JavaScript unicode 問(wèn)題的更多信息地址:

          https://mathiasbynens.be/notes/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?', 30, '+', 'left'); // "++++++What are you looking at?"// Unicode Aware:stringz.limit('??????', 2); // "????"stringz.limit('????????', 4, '????'); // "????????????????"
          • toArray(字符串)

          將字符串轉(zhuǎn)換為數(shù)組

          const stringz = require('stringz');stringz.toArray('abc');// ['a','b','c']//Unicode awarestringz.toArray('????????');// ['????', '??', '??']

          最后

          感謝你的閱讀,如果你有任何問(wèn)題,歡迎在留言區(qū)告訴我。



          學(xué)習(xí)更多技能

          請(qǐng)點(diǎn)擊下方公眾號(hào)

          瀏覽 44
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产www内射 | 91成人电影院 | 欧美亚洲国产一区导航 | 精品免费一区二区三区在线赤裸 | 久操网在线视频 |