自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

5個(gè)JavaScript的字符串處理庫(kù)

開(kāi)發(fā) 前端
使用字符串可能是一項(xiàng)繁瑣的任務(wù),因?yàn)橛性S多不同的用例。下面,讓我們看一些JavaScript的字符串處理庫(kù)。

使用字符串可能是一項(xiàng)繁瑣的任務(wù),因?yàn)橛性S多不同的用例。例如,將字符串轉(zhuǎn)換為駝峰大小寫(xiě)這樣的簡(jiǎn)單任務(wù)可能需要幾行代碼才能達(dá)到最終目標(biāo)。

  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 中投票最多的答案。但這也沒(méi)有解決字符串為 ----Foo----bAr----- 的情況。

5個(gè)JavaScript的字符串處理庫(kù)

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

讓我們看一些JavaScript的字符串處理庫(kù)。

1. String.js

string.js,或者簡(jiǎn)稱(chēng)為 S,是一個(gè)輕量級(jí)的JavaScript庫(kù)(壓縮后壓縮后小于5kb),用于瀏覽器或提供額外String方法的Node.js。

(1) 安裝:

  1. npm i string 

(2) 值得注意的方法:

between(left, right) ——提取左右串之間的字符串。嘗試在HTML中的兩個(gè)標(biāo)簽之間獲取元素時(shí)可以使用此方法。

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

camelize() ——刪除所有下劃線或破折號(hào),并將字符串轉(zhuǎn)換成駝峰式大寫(xiě)字母。此功能可用于解決本文開(kāi)頭提到的問(wèn)題。

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

humanize() ——將輸入轉(zhuǎn)換為人性化的形式。這個(gè)功能從頭開(kāi)始實(shí)現(xiàn),肯定需要相當(dāng)多的代碼。

  1. var S = require('string'); 
  2. S('   capitalize dash-CamelCase_underscore trim  ').humanize().s  
  3. //'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)。

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

你可以在官方網(wǎng)站查看更多方法。

2. Voca

5個(gè)JavaScript的字符串處理庫(kù)

https://vocajs.com

Voca是一個(gè)用于處理字符串的JavaScript庫(kù)。Voca庫(kù)提供有用的函數(shù)來(lái)使字符串操作變得輕松自如:更改大小寫(xiě),修飾,填充,彈化,拉丁化,sprintfy,截?cái)?,轉(zhuǎn)義等等。模塊化設(shè)計(jì)允許加載整個(gè)庫(kù)或單個(gè)函數(shù)以最小化應(yīng)用程序構(gòu)建。該庫(kù)已經(jīng)過(guò)全面測(cè)試,有據(jù)可查,并得到長(zhǎng)期支持。

(1) 安裝

  1. npm i voca 

(2) 值得注意的方法

Camel Case(String data)——將數(shù)據(jù)轉(zhuǎn)換為駝峰格式。

  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)——通過(guò)刪除變音符號(hào)來(lái)對(duì)數(shù)據(jù)進(jìn)行拉丁化處理。

  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)——檢查數(shù)據(jù)是否僅包含字母和數(shù)字字符。 (字母數(shù)字)

  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)——計(jì)算數(shù)據(jù)中的單詞數(shù)。

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

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

3. Anchorme.js

5個(gè)JavaScript的字符串處理庫(kù)

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

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

  • 它的靈敏度高,誤報(bào)率最低。
  • 它根據(jù)完整的IANA列表驗(yàn)證URL和電子郵件。
  • 驗(yàn)證端口號(hào)(如果有)。
  • 驗(yàn)證IP八位字節(jié)號(hào)(如果存在)。
  • 適用于非拉丁字母URL。

(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.com</a> 

你可以傳入額外的擴(kuò)展來(lái)進(jìn)一步定制功能。

4. Underscore.string

5個(gè)JavaScript的字符串處理庫(kù)

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

Underscore.string 是JavaScript的字符串操作擴(kuò)展,可以與或不與Underscore.js一起使用。Underscore.string是一個(gè)JavaScript庫(kù),用于舒適地處理字符串,它是Prototype.js,Right.js和Underscore啟發(fā)的Underscore.js擴(kuò)展。

Underscore.string為你提供了幾個(gè)有用的功能:大寫(xiě)、清除、包括、計(jì)數(shù)、escapeHTML、unescapeHTML、插入,拼接、startsWith、endsWith、標(biāo)題化、修剪、截?cái)嗟取?/p>

(1) 安裝

  1. npm install underscore.string 

(2) 值得注意的方法

numberFormat(number)——格式化數(shù)字。將數(shù)字格式化為帶小數(shù)點(diǎn)和順序分隔的字符串。

  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

該庫(kù)的主要亮點(diǎn)是它支持unicode。如果運(yùn)行以下代碼,則輸出為2。

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

這是因?yàn)?String.length() 返回字符串中的代碼單元數(shù),而不是字符數(shù)。

(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)——將字符串轉(zhuǎn)換為數(shù)組。

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

要了解有關(guān)Stringz的更多信息訪問(wèn)其Github。

 

責(zé)任編輯:趙寧寧 來(lái)源: 今日頭條
相關(guān)推薦

2025-02-21 12:30:00

字符串前端JavaScript

2020-12-31 07:56:02

JavaScript 字符串技巧

2021-08-26 11:41:50

字符串String.jsVoca

2023-02-09 16:15:27

JavaScript編程語(yǔ)言字符串

2023-04-17 16:19:32

編程語(yǔ)言JavaScript開(kāi)發(fā)

2010-11-26 09:51:54

MySQL字符串

2013-12-12 17:08:24

Lua字符串

2020-08-12 22:03:17

JavaScript開(kāi)發(fā)技術(shù)

2024-09-06 17:32:55

字符串Python

2025-03-18 07:20:00

JavaScript開(kāi)發(fā)字符串

2010-06-04 14:59:06

MySQL數(shù)據(jù)庫(kù)

2023-11-27 16:01:59

JavaScrip技巧

2010-06-21 09:48:43

2011-07-11 16:00:22

字符串拼接

2020-09-03 10:13:49

JavaScript字符串pad

2012-04-10 13:37:28

JavaScript

2015-06-09 14:43:36

javascript操作字符串

2010-07-14 16:35:52

Perl字符串處理函數(shù)

2011-07-11 15:36:44

JavaScript

2022-10-13 16:14:26

JavaScript字符串開(kāi)發(fā)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)