Co-authored-by: tobi <tobi.smethurst@protonmail.com> Reviewed-on: https://codeberg.org/superseriousbusiness/masto-fe-standalone/pulls/88 Co-authored-by: Zoë Bijl <moiety@noreply.codeberg.org> Co-committed-by: Zoë Bijl <moiety@noreply.codeberg.org>
31 lines
1.3 KiB
JavaScript
31 lines
1.3 KiB
JavaScript
import regexSupplant from "twitter-text/dist/lib/regexSupplant";
|
|
import validDomain from "twitter-text/dist/regexp/validDomain";
|
|
import validPortNumber from "twitter-text/dist/regexp/validPortNumber";
|
|
import validUrlPath from "twitter-text/dist/regexp/validUrlPath";
|
|
import validUrlPrecedingChars from "twitter-text/dist/regexp/validUrlPrecedingChars";
|
|
import validUrlQueryChars from "twitter-text/dist/regexp/validUrlQueryChars";
|
|
import validUrlQueryEndingChars from "twitter-text/dist/regexp/validUrlQueryEndingChars";
|
|
|
|
// The difference with twitter-text's extractURL is that the protocol isn't
|
|
// optional.
|
|
|
|
export const urlRegex = regexSupplant(
|
|
"(" + // $1 URL
|
|
"(#{validUrlPrecedingChars})" + // $2
|
|
"(https?:\\/\\/)" + // $3 Protocol
|
|
"(#{validDomain})" + // $4 Domain(s)
|
|
"(?::(#{validPortNumber}))?" + // $5 Port number (optional)
|
|
"(\\/#{validUrlPath}*)?" + // $6 URL Path
|
|
"(\\?#{validUrlQueryChars}*#{validUrlQueryEndingChars})?" + // $7 Query String
|
|
")",
|
|
{
|
|
validUrlPrecedingChars,
|
|
validDomain,
|
|
validPortNumber,
|
|
validUrlPath,
|
|
validUrlQueryChars,
|
|
validUrlQueryEndingChars,
|
|
},
|
|
"gi",
|
|
);
|