处理大小写转换,删除字母符号,Unicode处理,URL处理等。

使用字符串可能是一项繁琐的任务,因为有许多不同的用例。例如,将字符串转换为驼峰大小写这样的简单任务可能需要几行代码才能达到最终目标。

function camelize(str) {
 return str.replace(/(""; // or if (/\s+/.test(match)) for white spaces
  return index === 0 "text-align: center">5个你不知道的JavaScript字符串处理库(小结)

这是字符串处理库可以拯救的地方,它们使实现复杂的字符串操作变得容易,并且可以考虑给定问题的所有可能用例。这对你有帮助,因为你只需要调用一个方法即可获得有效的解决方案。

让我们看一些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

5个你不知道的JavaScript字符串处理库(小结)

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');
// => false

CountWords(String data)——计算数据中的单词数。

var v = require('voca');
v.countWords('gravity can cross dimensions');
// => 4

v.countWords('GravityCanCrossDimensions');
// => 4

v.countWords('Gravity - can cross dimensions!');
// => 4

EscapeRegExp(String data)——转义在数据中的正则表达式特殊字符 -[] / {}()* +? 。 \ ^ $ | 。

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

你可以在此处查看更多信息。

3. Anchorme.js

5个你不知道的JavaScript字符串处理库(小结)

这是一个微型快速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

5个你不知道的JavaScript字符串处理库(小结)

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,翻译:前端外文精选

华山资源网 Design By www.eoogi.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
华山资源网 Design By www.eoogi.com

稳了!魔兽国服回归的3条重磅消息!官宣时间再确认!

昨天有一位朋友在大神群里分享,自己亚服账号被封号之后居然弹出了国服的封号信息对话框。

这里面让他访问的是一个国服的战网网址,com.cn和后面的zh都非常明白地表明这就是国服战网。

而他在复制这个网址并且进行登录之后,确实是网易的网址,也就是我们熟悉的停服之后国服发布的暴雪游戏产品运营到期开放退款的说明。这是一件比较奇怪的事情,因为以前都没有出现这样的情况,现在突然提示跳转到国服战网的网址,是不是说明了简体中文客户端已经开始进行更新了呢?