首页 > 编程语言 >5 个 JavaScript 字符串操作库

5 个 JavaScript 字符串操作库

时间:2022-11-09 10:01:18浏览次数:75  
标签:string require JavaScript --- var stringz 字符串 操作

5 个 JavaScript 字符串操作库_数据

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

翻译 | 杨小二


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

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 中投票最多的答案。但这也无法解决字符串为 ---Foo---bAr--- 的情况。

5 个 JavaScript 字符串操作库_字符串_02


这就是字符串操作库可以派上用场的地方。它们可以轻松实现复杂的字符串操作,并且还可以考虑给定问题的所有可能用例。这对你有帮助,因为你只需要调用一个方法即可获得有效的解决方案。

让我们看看一些用于 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('<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 库中提供了 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 'café'
// => 'cafe'
v.latinise('août décembre');
// => 'aout decembre'
v.latinise('как прекрасен этот мир');
// => 'kak prekrasen etot mir'
  • isAlphaDigit(字符串数据)

检查数据是否仅包含字母和数字字符。(字母数字)

var v = require('voca');
v.isAlphaDigit('year2020');
// => true
v.isAlphaDigit('1448');
// => true
v.isAlphaDigit('40-20');
// => false
  • CountWords(字符串数据)

计算数据中的字数。

var v = require('voca');
v.countWords('gravity can cross dimensions');
// => 4
v.countWords('GravityCanCrossDimensions');
// => 4
v.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 <a href="http://link.com">link.com</a>

你可以传入其他扩展以进一步自定义该功能。

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/unders​​core.string.site/#chop

5、Stringz

这个库的主要亮点是它是 unicode 感知的。如果你运行下面的代码,输出将为 2。

"

标签:string,require,JavaScript,---,var,stringz,字符串,操作
From: https://blog.51cto.com/u_15809510/5835340

相关文章

  • 611003 CAD CAD基础操作
    本节课讲解3CAD基础操作。1.点击上面的小三角,选择【显示菜单栏】,将现有的工具命令栏进行删除。2.在工具栏空白处右键,选择【关闭】,将操作空间变大。3.【工具】-【工......
  • Linux-文件与目录操作命令-dd与cp的区别
    1.dd 命令用于读取、转换并输出数据。dd可从标准输入或文件中读取数据,根据指定的格式来转换数据,再输出到文件、设备或标准输出。1.1参数说明:if=文件名:输入文件名,......
  • 文件操作
    5文件操作程序运行时产生的数据都属于临时数据,程序一旦运行结束都会被释放通过文件可以将数据持久化C++中对文件操作需要包含头文件<fstream>文件类型分为两种:文......
  • mysql 中 <=>操作符
    在mysql中,“<=>”的意思为“安全等于”,是一个比较运算符,和“=”等于运算符类似,不过“<=>”可以用来判断NULL值:当两个操作数均为NULL时,其返回值为1而不为NULL;而当一个操作数......
  • Linux操作系统随笔2
    发现问题,查找原因,解决并记录。这是很好的——GaryCurp_2022.11.8今天还是继续搭建环境,教材到CentOS7导入hadoop包时候注释给出了两种不认识的导入方法,所以想要了解一下,然......
  • Linux操作系统随笔
    感觉更喜欢dos——GaryCurp_202.11.7环境:CentOS7X64设置默认进入命令行界面(前提是安装了GUI界面,不然也只有dos界面)#systemctlset-defaultmulti-user.target //默......
  • 盘点一个Python处理Excel两列单元格中有类似字符串就返回1,没有就返回0的操作
    大家好,我是Python进阶者。一、前言前几天在才哥的Python交流群遇到了一个粉丝提问,提问截图如下:觉得还挺有意思的,都是Pandas基础操作,这里拿出来给大家一起分享下。二、......
  • JavaScript基础
    一、JavaScript基础(一)变量和数据类型1、JavaScript介绍​ 1)JavaScript是什么?​ JavaScript是运行在客户端(浏览器)的编程语言,实现人机交互。​ 2)作用​ 网页特效(监听......
  • 字符串类型如何格式化保留小数点后两位【ToString("0.00")】
    废话都不想写了,直接上图遇到将decimal字段或者double字段转换成字符串string类型字段时想直接保留小数点后面两位的时候可以有个比较简易的格式化写法也就是str.ToStr......
  • 015.更新与删除操作
    1.更新1.1在goods.xml中编写<updateid="update"parameterType="com.imooc.mybatis.entity.Goods">UPDATEt_goodsSETtitle=#{titl......