如何在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>
这里看起来像是一个X-Y问题。以下是您应该考虑的几点:
- 检查文件是否存在(可能在服务器上)不能可靠地在客户端完成
- 至少可以说,任何客户端验证都是不够的。不可靠
- 为什么正则表达式?这里有更好的工具。更好,比如:更可靠,更容易,也可能更快。
- 检查扩展单独不会削减它。文件名的其余部分也可能无效。
尽管如此,为什么不检查文件名中的最后四个字符呢?假设您只允许.php
扩展,一个简单的:
var inputVal = inputElem.value.trim();
if (inputVal.substr(-4).toLowerCase() === '.php')
应该没问题。您也可以在服务器端做同样的事情:
if (strtolower(trim(substr($_POST['inputName'], -4))) === '.php')
当然,你仍然需要检查用户提交的其他禁止/棘手字符的值,如引号,空格,换行符,(反)斜杠,哈希等…总而言之,我认为你最好重新考虑一下你的方法。也许你可以告诉我们你真正想做的是什么,这样我们就可以为你推荐一个替代方案。
一旦你得到了工作,检查文件是否实际存在可以很容易地完成使用PHP函数:file_exists
。如果文件存在则返回true
,如果不存在则返回fals。
使用ajax检查文件名是否存在,这里您只想上传php文件,因此不需要使用正则表达式
请参考下面的jsfiddle链接
(http://jsfiddle.net/udhaya2006/BKMju/1/)
这对你肯定有帮助
相关文章:
- Javascript中的正则表达式验证
- javascript正则表达式验证未按预期工作
- 使用 JavaScript 正则表达式验证每个列表项一个字母的逗号列表
- 在提交时检查正则表达式验证,如果为空,则聚焦所有输入字段
- 如何使用正则表达式验证单字母域名
- Javascript正则表达式验证
- 使用javascript进行正则表达式验证
- 使用正则表达式验证特定范围
- 如何使用正则表达式验证 JavaScript 中的自定义 URL
- 使用正则表达式验证电子邮件地址
- 使用正则表达式验证网址
- 使用正则表达式验证加拿大邮政编码
- javascript 正则表达式验证列表以逗号分隔
- 使用原型进行正则表达式验证
- HTML 正则表达式验证在十进制输入上仅限制一个句点
- 用于 excel 文件上传 jQuery 的正则表达式验证代码
- 两个不同 URL 的正则表达式验证表单
- 正则表达式验证 - 域电子邮件地址
- 正则表达式验证
- 时间格式的 JavaScript 正则表达式验证问题