added Url validation
This commit is contained in:
@@ -739,3 +739,44 @@ export function Required(
|
|||||||
},
|
},
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Url
|
||||||
|
*/
|
||||||
|
interface ValidationUrlOptions {
|
||||||
|
invalidMessage?: string | ((options: ValidationUrlOptions) => string);
|
||||||
|
}
|
||||||
|
|
||||||
|
interface ValidationUrlObject extends ValidationUrlOptions {
|
||||||
|
validate: (value: string) => ValidationResult;
|
||||||
|
}
|
||||||
|
|
||||||
|
const defaultValidationUrlOptions: ValidationUrlOptions = {
|
||||||
|
invalidMessage: "Not a supported Url format.",
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Validate field is in a valid Email format
|
||||||
|
*
|
||||||
|
* @param options options data
|
||||||
|
* @returns ValidationEmailObject
|
||||||
|
*/
|
||||||
|
export function Url(options?: ValidationUrlOptions): ValidationUrlObject {
|
||||||
|
options = { ...defaultValidationUrlOptions, ...(options || {}) };
|
||||||
|
|
||||||
|
return {
|
||||||
|
...options,
|
||||||
|
validate: function (value: string): ValidationResult {
|
||||||
|
return {
|
||||||
|
valid: /^(https?|ftp):\/\/[^\s/$.?#].[^\s]*(:\d+)?([/?#][^\s]*)?$/.test(
|
||||||
|
value
|
||||||
|
),
|
||||||
|
invalidMessages: [
|
||||||
|
typeof this.invalidMessage === "string"
|
||||||
|
? this.invalidMessage
|
||||||
|
: this.invalidMessage(this),
|
||||||
|
],
|
||||||
|
};
|
||||||
|
},
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user