You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
30 lines
1.3 KiB
30 lines
1.3 KiB
import regexSupplant from 'twitter-text/dist/lib/regexSupplant'; |
|
import validUrlPrecedingChars from 'twitter-text/dist/regexp/validUrlPrecedingChars'; |
|
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 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', |
|
);
|
|
|