簡體   English   中英

如何在JavaScript中使用正則表達式驗證文件擴展名

[英]How to validate file extensions using regular expression in javascript

我有一個帶有提交按鈕的文本框。單擊提交按鈕后,我想檢查文件名是否存在,並且還想驗證文件名(僅允許.php擴展名)文件擴展名。

<input type="text" name="textfield1" id="text1" />

<input type="button" value="submit" name="submit" id="submit" onclick="login()"; />

<input type="reset" value="clear" id="reset" name="reset" />
</form>

在這里看起來像XY問題。 您應該考慮以下幾點:

  • 客戶端無法可靠地檢查文件是否存在(大概在服務器上)
  • 至少可以說,任何客戶端驗證都不足夠。 不可靠
  • 為什么要使用正則表達式? 這里有更好的工作工具。 更好,例如:更可靠,更容易,而且可能更快
  • 僅檢查擴展名不會削減它。 文件名的其余部分也可能無效。

既然如此,為什么不檢查文件名中的最后四個字符。 假設您只允許使用.php擴展名,則簡單:

var inputVal = inputElem.value.trim();
if (inputVal.substr(-4).toLowerCase() === '.php')

應該做得很好。 您也可以在服務器端執行相同的操作:

if (strtolower(trim(substr($_POST['inputName'], -4))) === '.php')

當然,您仍然必須檢查用戶提交的值,以獲取其他禁止的/特殊的字符,例如引號,空格,換行符,(反斜杠),哈希等...總之,我想您最好重新考慮您的方法。 也許告訴我們您實際上想做什么,所以我們可以建議您當前解決方案的替代方案。

完成該工作后,可以使用PHP函數file_exists輕松地檢查文件是否確實存在。 如果文件存在,則返回true否則返回true

使用ajax來檢查文件名是否存在,在這里您只想上傳php文件,因此無需進行正則表達式

請參考下面的jsfiddle鏈接

(http://jsfiddle.net/udhaya2006/BKMju/1/)

這肯定會幫助您

暫無
暫無

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

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