Support extended URL and deep link schemes in regex matcher -Update v…#928
Open
mskayali wants to merge 1 commit intothedevs-network:mainfrom
Open
Support extended URL and deep link schemes in regex matcher -Update v…#928mskayali wants to merge 1 commit intothedevs-network:mainfrom
mskayali wants to merge 1 commit intothedevs-network:mainfrom
Conversation
…alidators.handler.js This PR updates the regex used for URL/deep link validation to handle a wider range of schemes, including: * **Standard web protocols**: `http://`, `https://`, `ftp://` * **Custom app deep links**: e.g. `com.example.app://action=authorization&hash=testKey&user=1` * **Non-slash schemes**: e.g. `mailto:user@example.com`, `file:/Users/me/file.txt` The new regex is: ```regex ^[a-zA-Z][a-zA-Z0-9.+-]*:(\/\/)?[^\s]+ ``` --- ### Motivation Previously, the regex excluded common schemes (`http`, `https`, `ftp`) and only partially supported custom protocols. This caused valid links such as iOS deep links or `mailto:` addresses to be rejected. By expanding the pattern: * Developers can reliably validate both standard URLs and deep links. * Edge cases like dotted custom schemes (`com.example.app`) and plus/minus variants (`custom+scheme-1`) are fully supported. * Optional `//` handling ensures compatibility with schemes that do not use slashes. --- ### Examples ✅ **Now valid**: * `http://example.com` * `https://secure.com` * `ftp://fileserver` * `com.exaple.app://action=authorization&hash=testKey&user=1` * `mailto:user@example.com` * `file:/Users/me/file.txt` ❌ **Still invalid**: * `://oops` * `justastring` * `123abc://test` --- ### Testing * Added unit tests for all supported schemes and edge cases. * Confirmed backwards compatibility for existing deep links.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
validators.handler.js updated
This PR updates the regex used for URL/deep link validation to handle a wider range of schemes, including:
http://,https://,ftp://com.example.app://action=authorization&hash=testKey&user=1mailto:user@example.com,file:/Users/me/file.txtThe new regex is:
Motivation
Previously, the regex excluded common schemes (
http,https,ftp) and only partially supported custom protocols. This caused valid links such as iOS deep links ormailto:addresses to be rejected.By expanding the pattern:
com.example.app) and plus/minus variants (custom+scheme-1) are fully supported.//handling ensures compatibility with schemes that do not use slashes.Examples
✅ Now valid:
http://example.comhttps://secure.comftp://fileservercom.exaple.app://action=authorization&hash=testKey&user=1mailto:user@example.comfile:/Users/me/file.txt❌ Still invalid:
://oopsjustastring123abc://testTesting