簡體   English   中英

PHP Regex用於文件名

[英]PHP Regex for filename

我讓用戶可以通過textarea更改文件名,但現在我有一個正則表達式問題。

正如我在Windows 7中看到的那樣,這些字符僅允許用於文件名:

\\ / : * ? < > |

但我固執地,或許也明智地選擇將正則表達式最小化到這些特殊字符:

- _ .

所有其他人都應該被削減。

這個正則表達式有人可以幫助我嗎?

preg_replace all: A-Za-z0-9- _ .

我仍然真的沒有掌握它。

preg_replace('/[^A-Za-z0-9 _ .-]/', '', $filename);

[]是一個字符類,^否定它。 因此,除了該組中的字符之外,它實際上匹配任何其他內容。

請注意-最后,因為如果在別處使用它是一個特殊的范圍字符,例如0-9

你的問題已經完成了很多字符集。 你只需要將它插入preg_replace()即可。

嘗試這個:

$filename = preg_replace('/[^a-zA-Z0-9_.-]/', '', $filename);

[]包圍的字符集開頭的^表示匹配字符列表。 因此,該行可以被讀作“替換不是以下的字符”。

暫無
暫無

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

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