使用Foundation Abide验证文件类型

时间:2013-12-02 22:17:27

标签: javascript regex validation zurb-foundation abide

我希望使用Foundation的Abide插件来验证上传到type ="文件中的文件扩展名的类型"输入标签,但我有麻烦正确验证对RegExp的检查。

HTML:

<div class="large-2 columns button">
    <input id="uploadResume" type="file" required pattern="resume" />
    <small class="error">PDF or Word Document only please</small>
</div>

的javascript:

$(document)
    .foundation().foundation('abide', {
        patterns: {
        // check if the last 3 letters are acceptable
        resume: /^.(doc|DOC|pdf|PDF)*$/
    }
});

1 个答案:

答案 0 :(得分:4)

现在你试图匹配任何一个字符,然后是上面提到的extenions,所以试试这个模式:

<强>模式

/\.(doc|DOC|pdf|PDF)$/

它只匹配点后跟任何提到的扩展名,因此可能性为:

.doc
.DOC
.pdf
.PDF

但是如果你想匹配整个文件名+扩展名,请使用:

<强>模式

/^.+?\.(doc|DOC|pdf|PDF)$/

.+?之后添加了^,这意味着'匹配除新行0之外的任何字符或更多次,直到满足下一个令牌,同时添加\.以匹配扩展前的点。我还删除了不需要的*,这会导致重复扩展。

<强>实施例

filename.PDF

此文件将匹配。

filename.exe

这将不匹配。

最终答案

使用第二种模式作为内联模式:

<input type="file" required pattern="^.+?\.(doc|DOC|pdf|PDF)$" />.

显然在使用内联模式时存在一些问题,这会强制您在模式的开头和结尾处删除正斜杠。此外,命名模式看起来效果很好,我不确定为什么会这样。