小编典典

用一个空格替换所有非字母数字字符、换行符和多个空格

all

我正在寻找一个简洁的正则表达式解决方案来替换

  • 所有非字母数字字符
  • 所有换行符
  • 空白的所有多个实例

有一个空间


对于那些在家玩的人( 以下确实有效

text.replace(/[^a-z0-9]/gmi, " ").replace(/\s+/g, " ");

我的想法是 正则表达式 可能足够强大,可以在一个语句中实现这一点。我认为我需要的组件是

  • [^a-z0-9]- 删除非字母数字字符
  • \s+- 匹配任何空间集合
  • \r?\n|\r- 匹配所有新行
  • /gmi- 全局、多行、不区分大小写

但是,我似乎无法以正确的方式设置正则表达式的样式( 以下不起作用

text.replace(/[^a-z0-9]|\s+|\r?\n|\r/gmi, " ");

输入

234&^%,Me,2 2013 1080p x264 5 1 BluRay
S01(*&asd 05
S1E5
1x05
1x5

期望的输出

234 Me 2 2013 1080p x264 5 1 BluRay S01 asd 05 S1E5 1x05 1x5

阅读 105

收藏
2022-08-20

共1个答案

小编典典

请注意,这会\W
留下下划线。一个简短的等价物[^a-zA-Z0-9][\W_]

text.replace(/[\W_]+/g," ");

\W是单词字符(包括下划线)简写
\w的否定[A-Za-z0-9_]

regex101.com 上的示例

2022-08-20