如何從文件名中刪除非法URL字符,但不是文件擴展名上的點?有沒有辦法做到這一點?目前我有這個Javascript:如何從文件名中刪除非法的URL字符?
fileName = "I am a file name + two.doc"
fileName.replace(/[^a-zA-Z0-9-_]/g, ''); // regex that removes illegal characters
但它也消除了。對.doc我想要的東西,將刪除非法字符,除了文件擴展名。可能嗎?
如何從文件名中刪除非法URL字符,但不是文件擴展名上的點?有沒有辦法做到這一點?目前我有這個Javascript:如何從文件名中刪除非法的URL字符?
fileName = "I am a file name + two.doc"
fileName.replace(/[^a-zA-Z0-9-_]/g, ''); // regex that removes illegal characters
但它也消除了。對.doc我想要的東西,將刪除非法字符,除了文件擴展名。可能嗎?
添加.
文字以及隨後,\.
:
var fileName = "I am a file name + two.doc";
fileName.replace(/[^a-zA-Z0-9-_\.]/g, ''); // 'Iamafilenametwo.doc'
值得指出的是,在正則表達式的.
字符將匹配any single character except the newline character。因此,你需要逃跑的角色,以便爲它的文字字符匹配,\.
此外,\w
是equivilant到[A-Za-z0-9_]
,所以你能縮短你的表達:
/[^\w.]/g
而作爲hwnd points out,如果你不希望允許的文件名內的其他點的字符,你可以用減法:
.replace(/(?!\.[^.]+$)\.|[^\w.]+/g, '')
真棒,謝謝你們! – Unspeakable