From e100ee0cc0515eca2e9e0d7a759776ea8c018530 Mon Sep 17 00:00:00 2001 From: paris Date: Tue, 6 Jan 2015 13:03:07 +0200 Subject: [PATCH] [addon linkify] Further optimize URL algorithm --- addons/linkify/linkify.js | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/addons/linkify/linkify.js b/addons/linkify/linkify.js index 2f44fdfa..543e5feb 100644 --- a/addons/linkify/linkify.js +++ b/addons/linkify/linkify.js @@ -21,13 +21,16 @@ */ var exports = {}, protocolClause = '(https?:\\/\\/)', - domainBodyClause = '([\\da-z\\.-]+)', + domainCharacterSet = '[\\da-z\\.-]+', + negatedDomainCharacterSet = '[^\\da-z\\.-]+', + domainBodyClause = '(' + domainCharacterSet + ')', tldClause = '([a-z\\.]{2,6})', hostClause = domainBodyClause + '\\.' + tldClause, pathClause = '([\\/\\w\\.-]*)*\\/?', + negatedPathCharacterSet = '[^\\/\\w\\.-]+', bodyClause = hostClause + pathClause, - start = '(?:^|\\s+|\\(+|\\[+)(', - end = ')($|\\s+|\\)+|\\]+)', + start = '(?:^|' + negatedDomainCharacterSet + ')(', + end = ')($|' + negatedPathCharacterSet + ')', urlClause = start + protocolClause + '?' + bodyClause + end, urlRegex = new RegExp(urlClause);