簡體   English   中英

Javascript:如何從文件名中刪除非法URL字符?

[英]Javascript: How to remove illegal URL characters from a file name?

如何從文件名中刪除非法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'

值得指出的是. 正則表達式中的字符將匹配除換行符之外的任何單個字符 因此,您需要轉義字符才能使其與文字字符\\.匹配\\.

此外, \\w等同於[A-Za-z0-9_] ,因此您可以將表達式縮短為:

/[^\w.]/g

正如hwnd所指出的 ,如果你不想在文件名中允許其他點字符,你可以使用減法:

.replace(/(?!\.[^.]+$)\.|[^\w.]+/g, '')

對於Windows文件名,我相信.replace的簡化版本應該是
.replace(/[\\\\/:"*?<>|]/g, '')

在此輸入圖像描述 在此輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM