小编all*_*dio的帖子

正则表达式删除重音符号、特殊字符,但保留破折号、下划线和扩展名

我正在尝试删除重音符号和除破折号(-)、下划线(_)之外的特殊字符并保留扩展名。

\n

例如:

\n

\xc3\x81\xc3\x89\xc3\x8d\xc3\x93\xc3\x9a\xc3\xa1\xc3\xa9\xc3\xad\xc3\xb3\xc3\xba\xc3\xa2\xc3\xaa\xc3\xae\xc3\xb4\xc3\xbb\xc3\xa0\xc3\xa8\xc3\xac\xc3\xb2\xc3\xb9\xc3\x87\xc3\xa3\xc3\xa7.,~!@#$%&_-12345.png

\n

到:

\n

AEIOUaeiouaeiouaeiouCac_-12345.png

\n

我得出了这个结果,但问题是它忽略了所有点。我只需要忽略最后一个出现的地方以保留文件名的扩展名。

\n
"\xc3\x81\xc3\x89\xc3\x8d\xc3\x93\xc3\x9a\xc3\xa1\xc3\xa9\xc3\xad\xc3\xb3\xc3\xba\xc3\xa2\xc3\xaa\xc3\xae\xc3\xb4\xc3\xbb\xc3\xa0\xc3\xa8\xc3\xac\xc3\xb2\xc3\xb9\xc3\x87\xc3\xa3\xc3\xa7.,\\~!@#$%&_-12345.png".normalize(\'NFD\').replace(/\\[^a-zA-Z0-9-_\\]/g, "")\n
Run Code Online (Sandbox Code Playgroud)\n

我已经尝试过像这样的负面观察:

\n
/[^a-zA-Z0-9-]+(?<!\\.)/g\n
Run Code Online (Sandbox Code Playgroud)\n

使用这个参考,但我没有成功。

\n
"\xc3\x81\xc3\x89\xc3\x8d\xc3\x93\xc3\x9a\xc3\xa1\xc3\xa9\xc3\xad\xc3\xb3\xc3\xba\xc3\xa2\xc3\xaa\xc3\xae\xc3\xb4\xc3\xbb\xc3\xa0\xc3\xa8\xc3\xac\xc3\xb2\xc3\xb9\xc3\x87\xc3\xa3\xc3\xa7.,~!@#$%&-12.34.5.png".normalize(\'NFD\').replace(/[^a-zA-Z0-9-]+(?<!\\.)/g, \'\')\n
Run Code Online (Sandbox Code Playgroud)\n

如果在这种情况下我有多个点,它只会删除第一个..

\n

javascript regex

6
推荐指数
1
解决办法
886
查看次数

标签 统计

javascript ×1

regex ×1