我正在尝试去除重音和特殊字符,但保留破折号(-
)、下划线(_
)并保留扩展名。
例如:
ÁÉÍÓÚáéíóúâêîôûàèìòùÇãç.,~!@#$%&_-12345.png
到:
AEIOUaeiouaeiouaeiouCac_-12345.png
我得到了这个结果,但问题是它忽略了所有的点。我需要仅忽略最后一次出现以保留文件名的扩展名。
"ÁÉÍÓÚáéíóúâêîôûàèìòùÇãç.,\~!@#$%&_-12345.png".normalize('NFD').replace(/\[^a-zA-Z0-9-_\]/g, "")
我已经尝试过像这样的负向后瞻:
/[^a-zA-Z0-9-]+(?<!\.)/g
使用这个参考资料,但是我没有成功。
"ÁÉÍÓÚáéíóúâêîôûàèìòùÇãç.,~!@#$%&-12.34.5.png".normalize('NFD').replace(/[^a-zA-Z0-9-]+(?<!\.)/g, '')
如果在这种情况下我有多个点,它只会删除第一个.
。
.normalize('NFD').replace(/[^a-zA-Z0-9-._]/g, '')
”有什么问题吗?它看起来可以满足你的需求,而不会过于复杂化。 - Christian Vincenzo Traina[^\w.-]+|\.(?=[^.]*\.)
- bobble bubble