Remove LRM character, etc from websites and emails (closes #2323)

This commit is contained in:
Bryan Housel
2015-04-22 11:57:50 -04:00
parent 0313064e22
commit 420647f503
+19 -1
View File
@@ -140,9 +140,27 @@ iD.ui.EntityEditor = function(context) {
});
}
function cleanVal(k, v) {
return v.split(';')
var cleaned = v.split(';')
.map(function(s) { return s.trim(); })
.join(isOpeningHours(k) ? '; ' : ';');
// The code below is not intended to validate websites and emails.
// It is only intended to prevent obvious copy-paste errors. (#2323)
// clean website-like tags
if (k.indexOf('website') !== -1 || cleaned.indexOf('http') !== -1) {
cleaned = cleaned
.replace(/[\u200B-\u200F\uFEFF]/g, '') // strip LRM and other zero width chars
.replace(/[^\w\+\-\.\/\?\[\]\(\)~!@#$%&*',:;=]/g, encodeURIComponent);
// clean email-like tags
} else if (k.indexOf('email') !== -1) {
cleaned = cleaned
.replace(/[\u200B-\u200F\uFEFF]/g, '') // strip LRM and other zero width chars
.replace(/[^\w\+\-\.\/\?\|~!@#$%^&*'`{};=]/g, ''); // note: ';' allowed as OSM delimiter
}
return cleaned;
}
var out = {}, k, v;