Lodash - 字符串
Lodash - 字符串方法
Section titled “Lodash - 字符串方法”Lodash 提供了各种实用的函数用于常见的字符串操作,补充了 JavaScript 内置的 String 方法。这些函数通常为更改大小写、修剪(trimming)、填充(padding)、转义 HTML 以及创建模板等任务提供了方便的解决方案。
尽管像 toLowerCase()、toUpperCase()、trim()、padStart()、padEnd()、startsWith()、endsWith()、includes()、replace() 和模板字面量(template literals)等原生方法可以满足许多基本需求,Lodash 提供了有用的补充。
主要字符串操作方法
Section titled “主要字符串操作方法”| 方法与语法 | 描述 |
|---|---|
| camelCase _.camelCase([string=”]) | 将 string 转换为驼峰式(camel case)(例如,‘foo bar’ -> ‘fooBar’)。 |
| kebabCase _.kebabCase([string=”]) | 将 string 转换为烤肉串式(kebab case)(例如,‘Foo Bar’ -> ‘foo-bar’)。 |
| snakeCase _.snakeCase([string=”]) | 将 string 转换为蛇形(snake case)(例如,‘Foo Bar’ -> ‘foo_bar’)。 |
| startCase _.startCase([string=”]) | 将 string 转换为起始大写式(start case)(例如,‘—foo-bar—’ -> ‘Foo Bar’)。将每个单词的第一个字母大写。 |
| capitalize _.capitalize([string=”]) | 将 string 的第一个字符转换为大写,其余转换为小写。 |
| lowerCase _.lowerCase([string=”]) | 将 string 作为空格分隔的单词转换为小写。 |
| lowerFirst _.lowerFirst([string=”]) | 将 string 的第一个字符转换为小写。 |
| upperCase _.upperCase([string=”]) | 将 string 作为空格分隔的单词转换为大写。 |
| upperFirst _.upperFirst([string=”]) | 将 string 的第一个字符转换为大写。 |
| pad _.pad([string=”], [length=0], [chars=’ ’]) | 在 string 短于 length 时,在左右两边填充。如果填充字符无法均匀分配,则会被截断。 |
| padEnd _.padEnd([string=”], [length=0], [chars=’ ’]) | 在 string 短于 length 时,在右边填充。原生等效方法:String.prototype.padEnd()。 |
| padStart _.padStart([string=”], [length=0], [chars=’ ’]) | 在 string 短于 length 时,在左边填充。原生等效方法:String.prototype.padStart()。 |
| trim _.trim([string=”], [chars=whitespace]) | 移除 string 开头和结尾的空白字符或指定字符。原生等效方法:String.prototype.trim()(用于空白字符)。 |
| trimEnd _.trimEnd([string=”], [chars=whitespace]) | 移除结尾的空白字符或指定字符。原生等效方法:String.prototype.trimEnd() / trimRight()。 |
| trimStart _.trimStart([string=”], [chars=whitespace]) | 移除开头的空白字符或指定字符。原生等效方法:String.prototype.trimStart() / trimLeft()。 |
| repeat _.repeat([string=”], [n=1]) | 将给定的 string 重复 n 次。原生等效方法:String.prototype.repeat()。 |
| split _.split([string=”], separator, [limit]) | 按 separator 分割 string。原生等效方法:String.prototype.split()。 |
| escape _.escape([string=”]) | 将 string 中的字符 ’&’、’<’、’>’、’”’ 和 ”’” 转换为对应的 HTML 实体。在显示用户生成内容时,用于防止 XSS 攻击。 |
| unescape _.unescape([string=”]) | _.escape 的反向操作;将 HTML 实体 ’&’、’<’、’>’、’”’ 和 ''' 转换回其字符。 |
| escapeRegExp _.escapeRegExp([string=”]) | 转义 string 中的正则表达式特殊字符 ^$.*+?()[]{}|。在需要在正则表达式模式中匹配字面量字符时很有用。 |
| template _.template([string=”], [options={}]) | 创建一个编译好的模板函数,可以将数据属性插入到字符串中。提供了比原生模板字面量更多的功能,例如不同的分隔符和显式编译。 |
| truncate _.truncate([string=”], [options={}]) | 如果 string 长于给定的最大 length,则截断 string。截断字符串的最后字符会被省略字符串替换,默认为 ”…”。选项允许自定义长度、省略字符串和分隔符。 |
| words _.words([string=”], [pattern]) | 将 string 分割成其单词组成的数组。可以使用自定义正则表达式模式。 |
| deburr _.deburr([string=”]) | 通过将 Latin-1 Supplement 和 Latin Extended-A 字母转换为基本拉丁字母并移除组合音标(diacritical marks)来去除 string 中的发音符号(例如,‘déjà vu’ -> ‘deja vu’)。 |
| parseInt _.parseInt(string, [radix=10]) | 将 string 转换为指定基数(radix)的整数。行为类似于原生 parseInt,但通过先将非字符串值转换为字符串,能更优雅地处理它们。始终建议指定基数。 |
示例:大小写转换和模板
Section titled “示例:大小写转换和模板”import _ from 'lodash-es';
const messyString = '--foo bar BAZ--';const urlSlug = _.kebabCase(messyString);// urlSlug: 'foo-bar-baz'
const variableName = _.camelCase(messsyString);// variableName: 'fooBarBaz'
const title = _.startCase(_.lowerCase(messyString));// title: 'Foo Bar Baz'
const user = { name: 'Alice', id: 123 };const templateString = 'User <%- name %> (ID: <%- id %>) logged in.';
// Compile the templateconst compiled = _.template(templateString);
// Execute with dataconst message = compiled(user);// message: 'User Alice (ID: 123) logged in.'
const longText = 'This is a very long string that needs truncation.';const truncated = _.truncate(longText, { 'length': 20 });// truncated: 'This is a very long...'
console.log('URL Slug:', urlSlug);console.log('Variable Name:', variableName);console.log('Title:', title);console.log('Template Message:', message);console.log('Truncated Text:', truncated);Lodash 字符串方法在标准化用户输入、生成 slug 或标识符、格式化文本以供显示以及基本的模板化任务中特别方便。