Browse Source

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>
tags/v14.0.0beta1
Joas Schilling 6 years ago
parent
commit
e1936a49e7
No account linked to committer's email address
1 changed files with 2 additions and 2 deletions
  1. 2
    2
      core/js/public/comments.js

+ 2
- 2
core/js/public/comments.js 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, '');

Loading…
Cancel
Save