typia
Version:
Superfast runtime validators with only one line
14 lines (13 loc) • 580 B
JavaScript
//#region src/internal/_isFormatIriReference.ts
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);
};
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;
//#endregion
export { _isFormatIriReference };
//# sourceMappingURL=_isFormatIriReference.mjs.map