您現在的位置是:首頁 > 單機遊戲首頁單機遊戲

5 個 JavaScript 字串操作庫

簡介benotesjavascript-unicode安裝npm install stringz值得注意的方法limit(字串(string),limit,padString,padPosition)將字串限制為給定的寬度

5串26錯一場中幾串

「來源: |web前端開發 ID:web_qdkf」

5 個 JavaScript 字串操作庫

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

翻譯 | 楊小二

使用字串可能是一項繁瑣的任務,因為有許多不同的用例。例如,將字串轉換為駝峰式大小寫這樣的簡單任務可能需要幾行程式碼才能實現最終目標。

functioncamelize(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 spacesreturn index === 0 ? match。toLowerCase() : match。toUpperCase(); });}

上面的程式碼片段是 StackOverflow 中投票最多的答案。但這也無法解決字串為 ——-Foo——-bAr——- 的情況。

5 個 JavaScript 字串操作庫

這就是字串操作庫可以派上用場的地方。它們可以輕鬆實現複雜的字串操作,並且還可以考慮給定問題的所有可能用例。這對你有幫助,因為你只需要呼叫一個方法即可獲得有效的解決方案。

讓我們看看一些用於 JavaScript 的字串操作庫。

1、String.js

string。js或簡稱 S ,它是一個輕量級(檔案< 5 kb )JavaScript 庫,用於瀏覽器或 Node。js,提供額外的 String 方法。

安裝

npm i string

值得注意的方法:

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

這可以在嘗試獲取 HTML 中兩個標籤之間的元素時使用。

var S = require(‘string’);S(‘This is a link’)。between(‘’, ‘’)。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 庫中提供了 Change case、trim、pad、slugify、latinise、sprintf’y、truncate、escape 和其他有用的字串操作方法。為了減少應用程式構建,模組化設計允許你載入完整的庫或特定功能。

該庫已經過全面測試,有據可查,並提供長期支援。

安裝

npm i voca

值得注意的方法

Camel Case(字串資料)

將資料轉換為駝峰式大小寫。

var v = require(‘voca’);v。camelCase(‘foo Bar’);// => ‘fooBar’v。camelCase(‘FooBar’);// => ‘fooBar’v。camelCase(‘——-Foo——-bAr——-’);// => ‘fooBar’

Latinise(字串資料)

透過刪除變音符號對資料進行Latinise。

var v = require(‘voca’);v。latinise(‘cafe\u0301’); // or ‘cafe’// => ‘cafe’v。latinise(‘aot décembre’);// => ‘aout decembre’v。latinise(‘как прекрасен этот мир’);// => ‘kak prekrasen etot mir’

isAlphaDigit(字串資料)

檢查資料是否僅包含字母和數字字元。(字母數字)

var v = require(‘voca’);v。isAlphaDigit(‘year2020’);// => truev。isAlphaDigit(‘1448’);// => truev。isAlphaDigit(‘40-20’);// => false

CountWords(字串資料)

計算資料中的字數。

var v = require(‘voca’);v。countWords(‘gravity can cross dimensions’);// => 4v。countWords(‘GravityCanCrossDimensions’);// => 4v。countWords(‘Gravity - can cross dimensions!’);// => 4

EscapeRegExp(字串資料)

轉義正則表示式特殊字元 - [ ] / { } ( ) * + ? 。 \ ^ $ | 在資料中。

var v = require(‘voca’);v。escapeRegExp(‘(hours)[minutes]{seconds}’);// => ‘\(hours\)\[minutes\]\{seconds\}’

更多內容地址:https://vocajs。com。

3、Anchorme.js

這是一個小巧、快速的 Javascript 庫,可幫助檢測文字中的連結 / URL / 電子郵件並將它們轉換為可點選的 HTML 錨鏈接。

它高度敏感,誤報最少。

它根據完整的 IANA 列表驗證 URL 和電子郵件。

驗證埠號(如果存在)。

驗證 IP 八位位元組數(如果存在)。

適用於非拉丁字母 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 link。com

你可以傳入其他擴充套件以進一步自定義該功能。

4、Underscore.string

Underscore。string 是 JavaScript 的字串操作擴充套件,你可以使用或不使用 Underscore。js。Underscore。string 是一個 JavaScript 庫,用於輕鬆處理字串,是受 Prototype。js、Right。js 和 Underscore 啟發的 Underscore。js 擴充套件。

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

安裝

npm install underscore。string

值得注意的方法

numberFormat(number) — 格式化數字

將數字格式化為帶有十進位制和順序分隔的字串。

var _ = require(“underscore。string”);_。numberFormat(1000, 3)=> “1,000。000”_。numberFormat(123456789。123, 5, ‘。’, ‘,’);=> “123,456,789。12300”

levenshtein(string1,string2) — 計算兩個字串之間的 Levenshtein 距離。

在此處瞭解有關 levenshtein 距離演算法的更多資訊。

var _ = require(“underscore。string”);_。levenshtein(‘kitten’, ‘kittah’);=> 2

chop(string, step) — 將給定的字串切成小塊。

var _ = require(“underscore。string”);_。chop(‘whitespace’, 3);=> [‘whi’,‘tes’,‘pac’,‘e’]

瞭解有關下劃線字串的更多資訊地址:http://gabceb。github。io/underscore。string。site/#chop

5、Stringz

這個庫的主要亮點是它是 unicode 感知的。如果你執行下面的程式碼,輸出將為 2。

“”。length// -> 2

這是因為 String。length() 返回字串中的程式碼單元數,而不是字元數。實際上,在 010000–03FFFF 和 040000–10FFFF 範圍內的某些字元每個程式碼點最多可以使用 4 個位元組(32 位),但這不會改變答案:某些字元需要超過 2 個位元組才能表示,因此它們需要1個以上的程式碼點。

閱讀有關 JavaScript unicode 問題的更多資訊地址:

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(字串)

將字串轉換為陣列

const stringz = require(’stringz‘);stringz。toArray(’abc‘);// [’a‘,’b‘,’c‘]//Unicode awarestringz。toArray(’‘);// [’‘, ’‘, ’‘]

最後

感謝你的閱讀,如果你有任何問題,歡迎在留言區告訴我。

學習更多技能

5 個 JavaScript 字串操作庫

Top