Merge pull request #15527 from calixteman/15523

[JS] Add the function AFExactMatch
This commit is contained in:
Jonas Jenwald 2022-09-30 09:32:16 +02:00 committed by GitHub
commit 0011a747f7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 25 additions and 1 deletions

View File

@ -683,6 +683,14 @@ class AForm {
eMailValidate(str) {
return this._emailRegex.test(str);
}
AFExactMatch(rePatterns, str) {
if (rePatterns instanceof RegExp) {
return str.match(rePatterns)?.[0] === str || 0;
}
return rePatterns.findIndex(re => str.match(re)?.[0] === str) + 1;
}
}
export { AForm };

View File

@ -1035,7 +1035,7 @@ describe("Scripting", function () {
});
});
describe("ASSimple_Calculate", function () {
describe("AFSimple_Calculate", function () {
it("should compute the sum of several fields", async () => {
const refIds = [0, 1, 2, 3].map(_ => getId());
const data = {
@ -1429,5 +1429,21 @@ describe("Scripting", function () {
expect(value).toEqual(false);
});
});
describe("AFExactMatch", function () {
it("should check matching between regexs and a string", async () => {
let value = await myeval(`AFExactMatch(/\\d+/, "123")`);
expect(value).toEqual(true);
value = await myeval(`AFExactMatch(/\\d+/, "foo")`);
expect(value).toEqual(0);
value = await myeval(`AFExactMatch([/\\d+/, /[fo]*/], "foo")`);
expect(value).toEqual(2);
value = await myeval(`AFExactMatch([/\\d+/, /[fo]*/], "bar")`);
expect(value).toEqual(0);
});
});
});
});