Skip to content
Snippets Groups Projects
Verified Commit 0b0b1dab authored by tusooa's avatar tusooa :zap:
Browse files

Fix parsing non-ascii tags

parent 510392e4
No related branches found
No related tags found
No related merge requests found
Fix parsing non-ascii tags
...@@ -14,8 +14,11 @@ export const mentionMatchesUrl = (attention, url) => { ...@@ -14,8 +14,11 @@ export const mentionMatchesUrl = (attention, url) => {
* @param {string} url * @param {string} url
*/ */
export const extractTagFromUrl = (url) => { export const extractTagFromUrl = (url) => {
const regex = /tag[s]*\/(\w+)$/g const decoded = decodeURI(url)
const result = regex.exec(url) // https://git.pleroma.social/pleroma/elixir-libraries/linkify/-/blob/master/lib/linkify/parser.ex
// https://www.pcre.org/original/doc/html/pcrepattern.html
const regex = /tag[s]*\/([\p{L}\p{N}_]*[\p{Alphabetic}_·\u{200c}][\p{L}\p{N}_·\p{M}\u{200c}]*)$/ug
const result = regex.exec(decoded)
if (!result) { if (!result) {
return false return false
} }
......
...@@ -78,5 +78,11 @@ describe('MatcherService', () => { ...@@ -78,5 +78,11 @@ describe('MatcherService', () => {
expect(MatcherService.extractTagFromUrl(url)).to.eql(false) expect(MatcherService.extractTagFromUrl(url)).to.eql(false)
}) })
it('should return tag name from non-ascii tags', () => {
const url = encodeURI('https://website.com/tag/喵喵喵')
expect(MatcherService.extractTagFromUrl(url)).to.eql('喵喵喵')
})
}) })
}) })
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment