Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
Fixes y.at validation, currently failing for some emojis with the current logic.
The tl;dr on that is that
/^\p{Extended_Pictographic}{1,5}$/u
doesn't test/match what we would naively think it does.'🦊❤️😎❤️'.match(/\p{Extended_Pictographic}/gu)
//["🦊","❤","😎","❤"]
(notice the removed caret and dollarsign as well as the 1,5 multiplicator)'🦊❤️😎❤️'.match(/\p{Extended_Pictographic}+/gu)
//[ "🦊❤", "😎❤" ]
(notice the + multiplicator, and how this now creates two groups of two "emojis")'🦊❤️😎❤️'.match(/^\p{Extended_Pictographic}{1,5}^/gu)
//null
Fixed by using the
grapheme-splitter
as recommended by Gabriel from y.at, which ensures we split characters by graphemes e.g "user-visible characters", as opposed to actual characters, which emojis might be made of many.Notice
Pull Request Type
Issue (if applicable)
N/A
Risk
None, worst case scenario this is still broken
Testing
Engineering
☝🏽
Operations
☝🏽
Screenshots (if applicable)