Yeoman提示:如何从一个string生成一个有效的文件名?

在Yeoman或Node中是否有一个方法可以从string中生成一个有效的文件名?

我的目标是用正常的字母,短划线的空格等代替重音字母。

基本上,所有你需要的是一个function,删除特殊字符,也许用一个任意的系统replace它们。

一个选项已经被passy命名,这是利用:

this._.dasherize(str) 

尽pipe如此,还有一些其他的select可以使用。 例如,你可以看看underscore.string模块 ,它为此提供了一些function。 从这些,我强烈推荐slugifyfunction:

从文档 :

将文本转换为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"