typia
Version:
Superfast runtime validators with only one line
15 lines • 679 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports._isFormatIriReference = void 0;
const _isFormatIriReference = (str) => {
if (FORBIDDEN.test(str) || INVALID_PERCENT.test(str))
return false;
const colon = str.indexOf(":");
const boundary = str.search(/[/?#]/u);
return (colon === -1 || (boundary !== -1 && boundary < colon) || SCHEME.test(str));
};
exports._isFormatIriReference = _isFormatIriReference;
const FORBIDDEN = /[\u0000-\u0020\u007f-\u009f\ud800-\udfff"<>\\^`{|}]/u;
const INVALID_PERCENT = /%(?![0-9A-Fa-f]{2})/u;
const SCHEME = /^[A-Za-z][A-Za-z0-9+.-]*:/u;
//# sourceMappingURL=_isFormatIriReference.js.map