[pve-devel] [PATCH v3 common] fix #2111: regex match for email addresses

Oguz Bektas o.bektas at proxmox.com
Thu Feb 28 13:40:26 CET 2019


now allows:
* addresses without tld (such as user at localhost per bug)
* change the min char limit from 2 to 1 in the host part
* allow more than 5 subdomains
* allow addresses ending with +, -

also used the backslash escape character in the character sets, in
hopes of improving readability.

Signed-off-by: Oguz Bektas <o.bektas at proxmox.com>
---
 src/PVE/JSONSchema.pm | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/src/PVE/JSONSchema.pm b/src/PVE/JSONSchema.pm
index 36fa994..1f93a6b 100644
--- a/src/PVE/JSONSchema.pm
+++ b/src/PVE/JSONSchema.pm
@@ -356,8 +356,7 @@ register_format('email', \&pve_verify_email);
 sub pve_verify_email {
     my ($email, $noerr) = @_;
 
-    # we use same regex as in Utils.js
-    if ($email !~ /^(\w+)([\-+.][\w]+)*@(\w[\-\w]*\.){1,5}([A-Za-z]){2,63}$/) {
+    if ($email !~ /^\w+([\+\-\.]\w*)*@([a-zA-Z0-9\-]+\.)*([a-zA-Z0-9\-]){1,63}$/) {
 	   return undef if $noerr;
 	   die "value does not look like a valid email address\n";
     }
-- 
2.11.0




More information about the pve-devel mailing list