Yeoman提示:如何从一个string生成一个有效的文件名?
在Yeoman或Node中是否有一个方法可以从string中生成一个有效的文件名?
我的目标是用正常的字母,短划线的空格等代替重音字母。
基本上,所有你需要的是一个function,删除特殊字符,也许用一个任意的系统replace它们。
一个选项已经被passy命名,这是利用:
this._.dasherize(str)
尽pipe如此,还有一些其他的select可以使用。 例如,你可以看看underscore.string模块 ,它为此提供了一些function。 从这些,我强烈推荐slugify
function:
从文档 :
将文本转换为URL段落。 用短划线代替空格,加重和特殊字符。
举个例子:
_.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"