【发布时间】:2013-08-06 14:53:06
【问题描述】:
是否有在 Yeoman 或 Node 中实现从字符串生成有效文件名的方法?
我的目标是用普通字母替换重音字母,用破折号替换空格等。
【问题讨论】:
标签: javascript node.js filenames yeoman
是否有在 Yeoman 或 Node 中实现从字符串生成有效文件名的方法?
我的目标是用普通字母替换重音字母,用破折号替换空格等。
【问题讨论】:
标签: javascript node.js filenames yeoman
基本上,您只需要一个删除特殊字符并可能使用任意系统替换它们的函数。
passy已经命名了一个选项,就是利用:
this._.dasherize(str)
不过,您还可以使用一些其他选项。例如,您可以查看underscore.string module,它为此提供了一些功能。从这些,我强烈推荐slugify函数:
将文本转换为 URL slug。用破折号替换空格、重音字符和特殊字符。
举个例子:
_.slugify("Un éléphant à l'orée du bois")
=> 'un-elephant-a-loree-du-bois';
这应该正是您所需要的,并且仍然保持良好的可读性。
希望这会有所帮助。
【讨论】:
对于 Yeoman 生成器,处理此问题的常用方法是在 JavaScript 生成器代码中使用 this._.dasherize(str) 或在模板中使用 <%= _.dasherize(str) %>。它不处理重音字母,但无论如何这些都应该是有效的文件名。
console.log(this._.dasherize("some userProvided string"));
// output: "some-user-provided-string"
【讨论】: