[英]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.