Fix "parsing" of email-addresses in comments and chat messages

\\b matches any non-word character, including \@ and \-
In order to not detect urls in the middle of email-addresses,
we need to check for white space characters and beginning of the
message instead.

Signed-off-by: Joas Schilling <coding@schilljs.com>
This commit is contained in:
Joas Schilling 2018-06-27 12:54:06 +02:00 committed by Morris Jobke
parent 922c2c64b5
commit 4e99dc2318
No known key found for this signature in database
GPG Key ID: FE03C3A163FEDE68
1 changed files with 2 additions and 2 deletions

View File

@ -21,7 +21,7 @@
* The downside: anything not ascii is excluded. Not sure how common it is in areas using different
* alphabets the upside: fake domains with similar looking characters won't be formatted as links
*/
urlRegex: /(\b(https?:\/\/|([-A-Z0-9+_])*\.([-A-Z])+)[-A-Z0-9+&@#\/%?=~_|!:,.;()]*[-A-Z0-9+&@#\/%=~_|()])/ig,
urlRegex: /((\s|^)(https?:\/\/|([-A-Z0-9+_])*\.([-A-Z])+)[-A-Z0-9+&@#\/%?=~_|!:,.;()]*[-A-Z0-9+&@#\/%=~_|()])/ig,
protocolRegex: /^https:\/\//,
plainToRich: function(content) {
@ -39,7 +39,7 @@
return content.replace(this.urlRegex, function(url) {
var hasProtocol = (url.indexOf('https://') !== -1) || (url.indexOf('http://') !== -1);
if(!hasProtocol) {
url = 'https://' + url;
url = 'https://' + url.trim();
}
var linkText = url.replace(self.protocolRegex, '');