diff --git a/src/index.js b/src/index.js index a46c55b..36b267c 100644 --- a/src/index.js +++ b/src/index.js @@ -1,6 +1,6 @@ const re = { http: /.*?:\/\//g, - url: /(\s|^)((https?|ftp):\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\w-\/\?\=\#\.])*/gi, + url: /(\s|^)((https?|ftp):\/\/)?[\da-z\d:%._\+~#=-]{2,256}\.[a-z]{2,6}\b([\da-z:%_\+.~#?&//=-]*)/gi, image: /\.(jpe?g|png|gif)$/, email: /(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))/gi, cloudmusic: /http:\/\/music\.163\.com\/#\/song\?id=(\d+)/i, diff --git a/src/index.test.js b/src/index.test.js index e762097..ce6cf3b 100644 --- a/src/index.test.js +++ b/src/index.test.js @@ -6,6 +6,11 @@ describe('main', () => { const result = 'http://github.com/egoist, image http://twitter.com/shomin_sample.jpg no i@google.com' expect(autoLink(string, {image: false, email: false})).toBe(result) }) + it('test ellipses in text', () => { + const string = 'sigh... lets github.com/egoist, image twitter.com/shomin_sample.jpg no i@google.com' + const result = 'sigh... lets http://github.com/egoist, image http://twitter.com/shomin_sample.jpg no i@google.com' + expect(autoLink(string, {image: false, email: false})).toBe(result) + }) it('replace only url', () => { const string = 'http://github.com/egoist, image http://twitter.com/shomin_sample.jpg no i@google.com' const result = 'http://github.com/egoist, image http://twitter.com/shomin_sample.jpg no i@google.com'