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", );