1

我有一个正则表达式,可以在文件名中查找空格、连字符、下划线和 %20

/\s+|-+|_+|%20+/gi

如果文件名有任何连字符 etch 那么它们将被转换为空格。我不担心延期

  • this-is_my%20file­which-is-an_image

将改为

  • 这是我的文件,它是一个图像

它工作正常,但我不确定使用 case OR case OR case 方法是否是正确的方法。此外,上述内容与软连字符不匹配,但我不知道该怎么做。干杯。

4

3 回答 3

3

这在一定程度上取决于您的用例。

如果您想用一个破折号替换所有空格。就这样"abc_-def"变成了"abc-def"。在这种情况下,您当前的正则表达式将"abc--def"改为给出。

要修改它,您可以移动+,如下所示:

"abc-_def".replace(/([\s\-_]|%20)+/gi, "-"); // "abc-def"
于 2012-11-29T17:18:10.783 回答
2

您可以使用较短的版本,如下所示:

/(\s|-|_|%20)+/gi
于 2012-11-29T17:18:34.233 回答
1

我们在这里需要一些上下文。如果您只想查看文件名是否包含其中之一,请使用以下命令:

/\s|\-|%20/

如果文件名包含其中任何一个,则返回 true,否则返回 false。

如果您想要更多,您需要告诉我们您需要它的用途。你想用别的东西代替它们吗?如果它们都存在,你想返回 true 吗?

编辑:您已经编辑了您的问题,谢谢。你这样做的方式很好,是的。

于 2012-11-29T17:15:18.013 回答