【问题标题】:Yeoman prompt: how generate a valid filename from a string?Yeoman 提示:如何从字符串生成有效的文件名?
【发布时间】:2013-08-06 14:53:06
【问题描述】:

是否有在 Yeoman 或 Node 中实现从字符串生成有效文件名的方法?

我的目标是用普通字母替换重音字母,用破折号替换空格等。

【问题讨论】:

    标签: javascript node.js filenames yeoman


    【解决方案1】:

    基本上,您只需要一个删除特殊字符并可能使用任意系统替换它们的函数。

    passy已经命名了一个选项,就是利用:

    this._.dasherize(str)
    

    不过,您还可以使用一些其他选项。例如,您可以查看underscore.string module,它为此提供了一些功能。从这些,我强烈推荐slugify函数:

    来自documentation

    将文本转换为 URL slug。用破折号替换空格、重音字符和特殊字符。

    举个例子:

    _.slugify("Un éléphant à l'orée du bois")
    => 'un-elephant-a-loree-du-bois';
    

    这应该正是您所需要的,并且仍然保持良好的可读性。

    希望这会有所帮助。

    【讨论】:

      【解决方案2】:

      对于 Yeoman 生成器,处理此问题的常用方法是在 JavaScript 生成器代码中使用 this._.dasherize(str) 或在模板中使用 <%= _.dasherize(str) %>。它不处理重音字母,但无论如何这些都应该是有效的文件名。

      console.log(this._.dasherize("some userProvided string")); 
      // output: "some-user-provided-string"
      

      【讨论】:

      • 谢谢,+1(有用,但不完整)
      • 我同意,Golo 的回答要好得多。 :)
      猜你喜欢
      • 2010-10-11
      • 1970-01-01
      • 2012-03-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多