螺旋共享 - 字符串
用于字符串操作的公用功能集,包括多行字符串处理,文件名 sanitization,路径处理,以及编辑距离计算.
安装
npm install @adobe/helix-shared-string
使用量
import {
multiline,
splitByExtension,
sanitizeName,
sanitizePath,
editDistance
} from '@adobe/helix-shared-string';
职能
多行( str)
以适当的缩进处理方式声明多行字符串 。 此函数将第一行和最后一行完全空出,并删除所有行中常见的空白前缀.
const text = multiline(`
Hello
World
Indented
Back
`);
// Result: "Hello\nWorld\n Indented\nBack"
该函数会自动检测并去除常见的缩进级,使其在代码中适合模板字符串.
拆分扩展( 名称)
在最后一个点拆分一个文件名,返回基名和扩展为双元素数组.
splitByExtension('document.txt');
// Returns: ['document', 'txt']
splitByExtension('archive.tar.gz');
// Returns: ['archive.tar', 'gz']
splitByExtension('README');
// Returns: ['README', '']
splitByExtension('.gitignore');
// Returns: ['.gitignore', '']
消毒Name (名称)
将字符串设置为 :
- 转换为小写
- 所有 Unicode 字符规范化
- 替换所有带有破折号的非缩写字符
- 删除相接的破折号
- 删除前行和后行的破折号
sanitizeName('My Document');
// Returns: 'my-document'
sanitizeName('Föhren Smürd');
// Returns: 'fohren-smurd'
sanitizeName('.My 2. Document-');
// Returns: 'my-2-document'
消毒Path( 文件路径, 选择)
使用相同的规则对文件路径进行安全化 sanitizeName,但只影响底名。 目录路径和扩展内容被保存.
sanitizePath('/Untitled Folder/My Document.docx');
// Returns: '/Untitled Folder/my-document.docx'
sanitizePath('Föhren Smürd.txt');
// Returns: 'fohren-smurd.txt'
sanitizePath('.My 2. Document!.docx');
// Returns: 'my-2-document.docx'
选项 :
ignoreExtension(布尔语):如果true,将整个文件名作为碱名,而不保留任何扩展名
sanitizePath('.MyDocument', { ignoreExtension: true });
// Returns: 'mydocument'
编辑差异( s0, s1)
使用递归算法计算出两个字符串之间的Levenshtein编辑距离。 返回将一个字符串转换成另一个字符串所需的单个字符组编辑(插入、删除或替换)的最小数量.
editDistance('foo', 'foo');
// Returns: 0
editDistance('foo', 'foo123');
// Returns: 3
editDistance('My Document', 'my-document');
// Returns: 3
editDistance('My 1. Document', 'my-1-document');
// Returns: 5
此功能对文件名等相对较短的字符串进行了优化,即使使用中长的输入,也表现良好.