mirror of
https://github.com/superseriousbusiness/gotosocial.git
synced 2024-11-29 07:02:45 +00:00
[bugfix] Make hashtag regex work with non-ascii characters (#682)
This commit is contained in:
parent
9e7d022a06
commit
664713ddd4
|
@ -71,8 +71,8 @@
|
||||||
// MentionFinder extracts mentions from a piece of text.
|
// MentionFinder extracts mentions from a piece of text.
|
||||||
MentionFinder = regexp.MustCompile(mentionFinder)
|
MentionFinder = regexp.MustCompile(mentionFinder)
|
||||||
|
|
||||||
// hashtag regex can be played with here: https://regex101.com/r/bPxeca/1
|
// hashtag regex can be played with here: https://regex101.com/r/bpyGlj/1
|
||||||
hashtagFinder = fmt.Sprintf(`(?:^|\s)(?:#*)(#[a-zA-Z0-9]{1,%d})(?:#|\b)`, maximumHashtagLength)
|
hashtagFinder = fmt.Sprintf(`(?:^|\s)(?:#*)(#[\p{L}\p{N}]{1,%d})(?:#|\b)`, maximumHashtagLength)
|
||||||
// HashtagFinder finds possible hashtags in a string.
|
// HashtagFinder finds possible hashtags in a string.
|
||||||
// It returns just the string part of the hashtag, not the # symbol.
|
// It returns just the string part of the hashtag, not the # symbol.
|
||||||
HashtagFinder = regexp.MustCompile(hashtagFinder)
|
HashtagFinder = regexp.MustCompile(hashtagFinder)
|
||||||
|
|
|
@ -83,15 +83,20 @@ func (suite *StatusTestSuite) TestDeriveHashtagsOK() {
|
||||||
|
|
||||||
#ThisShouldAlsoWork #not_this_though
|
#ThisShouldAlsoWork #not_this_though
|
||||||
|
|
||||||
#111111 thisalsoshouldn'twork#### ##`
|
#111111 thisalsoshouldn'twork#### ##
|
||||||
|
|
||||||
|
#alimentación, #saúde
|
||||||
|
`
|
||||||
|
|
||||||
tags := util.DeriveHashtagsFromText(statusText)
|
tags := util.DeriveHashtagsFromText(statusText)
|
||||||
assert.Len(suite.T(), tags, 5)
|
assert.Len(suite.T(), tags, 7)
|
||||||
assert.Equal(suite.T(), "testing123", tags[0])
|
assert.Equal(suite.T(), "testing123", tags[0])
|
||||||
assert.Equal(suite.T(), "also", tags[1])
|
assert.Equal(suite.T(), "also", tags[1])
|
||||||
assert.Equal(suite.T(), "thisshouldwork", tags[2])
|
assert.Equal(suite.T(), "thisshouldwork", tags[2])
|
||||||
assert.Equal(suite.T(), "ThisShouldAlsoWork", tags[3])
|
assert.Equal(suite.T(), "ThisShouldAlsoWork", tags[3])
|
||||||
assert.Equal(suite.T(), "111111", tags[4])
|
assert.Equal(suite.T(), "111111", tags[4])
|
||||||
|
assert.Equal(suite.T(), "alimentación", tags[5])
|
||||||
|
assert.Equal(suite.T(), "saúde", tags[6])
|
||||||
}
|
}
|
||||||
|
|
||||||
func (suite *StatusTestSuite) TestDeriveEmojiOK() {
|
func (suite *StatusTestSuite) TestDeriveEmojiOK() {
|
||||||
|
|
Loading…
Reference in a new issue