[inputmask] Add definitions property to Options (#40573)

This commit is contained in:
Sam Herrmann
2019-11-26 14:41:04 -08:00
committed by Andrew Casey
parent ff77e86e11
commit bc0ac158b0
4 changed files with 63 additions and 38 deletions
+8 -1
View File
@@ -513,6 +513,13 @@ declare namespace Inputmask {
* Format of the unmasked value. This is only effective when used with the datetime alias.
*/
outputFormat?: string;
/**
* Add new definitions to this inputmask.
*/
definitions?: {
[key: string]: Definition;
};
}
interface Instance {
@@ -658,7 +665,7 @@ declare namespace Inputmask {
*/
extendDefaults(opts: Options): void;
/**
* Add new definitions to this inputmask.
* Extends the set of available definitions.
*/
extendDefinitions(definitions: {
[key: string]: Definition,
+43 -37
View File
@@ -70,6 +70,12 @@ Inputmask({
unmaskAsNumber: false,
inputType: "text",
inputmode: "numeric",
definitions: {
X: {
validator: "[xX]",
casing: "upper"
}
}
}).mask("selector");
Inputmask("9-a{1,3}9{1,3}").mask("selector");
@@ -89,50 +95,50 @@ function testMask() {
}
Inputmask.extendDefaults({
autoUnmask: true
autoUnmask: true
});
Inputmask.extendDefinitions({
A: {
validator: "[A-Za-z\u0410-\u044F\u0401\u0451\u00C0-\u00FF\u00B5]",
casing: "upper"
},
'+': {
validator: "[0-9A-Za-z\u0410-\u044F\u0401\u0451\u00C0-\u00FF\u00B5]",
casing: "upper"
}
A: {
validator: "[A-Za-z\u0410-\u044F\u0401\u0451\u00C0-\u00FF\u00B5]",
casing: "upper"
},
'+': {
validator: "[0-9A-Za-z\u0410-\u044F\u0401\u0451\u00C0-\u00FF\u00B5]",
casing: "upper"
}
});
Inputmask.extendAliases({
numeric: {
mask: "r",
greedy: false
}
numeric: {
mask: "r",
greedy: false
}
});
Inputmask.extendDefinitions({
f: {
validator: "[0-9\(\)\.\+/ ]"
},
j: {
validator: "(19|20)\\d{2}"
},
x: {
validator: "[0-2]",
definitionSymbol: "i"
},
y: {
validator: (chrs: string, buffer: string[], pos: number) => {
const valExp2 = new RegExp("2[0-5]|[01][0-9]");
return valExp2.test(buffer[pos - 1] + chrs);
},
definitionSymbol: "i"
},
z: {
validator: (chrs: string, buffer: string[], pos: number) => {
const valExp3 = new RegExp("25[0-5]|2[0-4][0-9]|[01][0-9][0-9]");
return valExp3.test(buffer[pos - 2] + buffer[pos - 1] + chrs);
},
definitionSymbol: "i"
}
f: {
validator: "[0-9\(\)\.\+/ ]"
},
j: {
validator: "(19|20)\\d{2}"
},
x: {
validator: "[0-2]",
definitionSymbol: "i"
},
y: {
validator: (chrs: string, buffer: string[], pos: number) => {
const valExp2 = new RegExp("2[0-5]|[01][0-9]");
return valExp2.test(buffer[pos - 1] + chrs);
},
definitionSymbol: "i"
},
z: {
validator: (chrs: string, buffer: string[], pos: number) => {
const valExp3 = new RegExp("25[0-5]|2[0-4][0-9]|[01][0-9][0-9]");
return valExp3.test(buffer[pos - 2] + buffer[pos - 1] + chrs);
},
definitionSymbol: "i"
}
});
function testElement(el: HTMLElement) {
@@ -78,4 +78,10 @@ $("#testmask").inputmask({
unmaskAsNumber: false,
inputType: "text",
inputmode: "numeric",
definitions: {
X: {
validator: "[xX]",
casing: "upper"
}
}
});
@@ -72,6 +72,12 @@ Inputmask({
unmaskAsNumber: false,
inputType: "text",
inputmode: "numeric",
definitions: {
X: {
validator: "[xX]",
casing: "upper"
}
}
}).mask("selector");
Inputmask("9-a{1,3}9{1,3}").mask("selector");