From 6ecdb13df4f8f51724eaf646fc7ded7c1cc9250f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Kliment?= Date: Wed, 25 Jul 2018 10:34:50 +0200 Subject: [PATCH] netteForms.js: support checking file name via pattern rule using HTML5 File API * this is a complement to #175 so validating file names via pattern works on both client and server --- src/assets/netteForms.js | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/assets/netteForms.js b/src/assets/netteForms.js index fd6d3a4ef..18b99e400 100644 --- a/src/assets/netteForms.js +++ b/src/assets/netteForms.js @@ -449,8 +449,24 @@ }, pattern: function(elem, arg, val) { + if (typeof arg !== 'string') { + return null; + } + try { - return typeof arg === 'string' ? (new RegExp('^(?:' + arg + ')$')).test(val) : null; + var regExp = new RegExp('^(?:' + arg + ')$'); + + if (window.FileList && val instanceof FileList) { + for (var i = 0; i < val.length; i++) { + if (!regExp.test(val[i].name)) { + return false; + } + } + + return true; + } + + return regExp.test(val); } catch (e) {} // eslint-disable-line no-empty },