JS -- add function eMailValidate used to validate an email address
This commit is contained in:
parent
b194c820bf
commit
f94269c0d1
@ -37,6 +37,14 @@ class AForm {
|
||||
"m/d/yy HH:MM",
|
||||
];
|
||||
this._timeFormats = ["HH:MM", "h:MM tt", "HH:MM:ss", "h:MM:ss tt"];
|
||||
|
||||
// The e-mail address regex below originates from:
|
||||
// https://html.spec.whatwg.org/multipage/input.html#valid-e-mail-address
|
||||
this._emailRegex = new RegExp(
|
||||
"^[a-zA-Z0-9.!#$%&'*+\\/=?^_`{|}~-]+" +
|
||||
"@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?" +
|
||||
"(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$"
|
||||
);
|
||||
}
|
||||
|
||||
_parseDate(cFormat, cDate) {
|
||||
@ -577,6 +585,10 @@ class AForm {
|
||||
this.AFDate_KeystrokeEx(this._timeFormats[pdf]);
|
||||
}
|
||||
}
|
||||
|
||||
eMailValidate(str) {
|
||||
return this._emailRegex.test(str);
|
||||
}
|
||||
}
|
||||
|
||||
export { AForm };
|
||||
|
@ -92,7 +92,7 @@ function initSandbox({ data, extra, out }) {
|
||||
out.zoomtype = ZoomType;
|
||||
|
||||
for (const name of Object.getOwnPropertyNames(AForm.prototype)) {
|
||||
if (name.startsWith("AF")) {
|
||||
if (name !== "constructor" && !name.startsWith("_")) {
|
||||
out[name] = aform[name].bind(aform);
|
||||
}
|
||||
}
|
||||
|
@ -1202,5 +1202,21 @@ describe("Scripting", function () {
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
describe("eMailValidate", function () {
|
||||
it("should validate an e-mail address", function (done) {
|
||||
Promise.all([
|
||||
myeval(`eMailValidate(123)`).then(value => {
|
||||
expect(value).toEqual(false);
|
||||
}),
|
||||
myeval(`eMailValidate("foo@bar.com")`).then(value => {
|
||||
expect(value).toEqual(true);
|
||||
}),
|
||||
myeval(`eMailValidate("foo bar")`).then(value => {
|
||||
expect(value).toEqual(false);
|
||||
}),
|
||||
]).then(() => done());
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
Loading…
Reference in New Issue
Block a user