On Fri, 20 Aug 2021 11:22:07 GMT, Daniel Fuchs <[email protected]> wrote:
>> src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlDocletWriter.java
>> line 1703:
>>
>>> 1701: return text;
>>> 1702: }
>>> 1703: if (text.matches("^[^:/?#]+:.+$")) {
>>
>> Why not use `java.net.URI` API to determine if the link contains a scheme?
>
> I assume the link is in an HTML document and goes in an HTML document. If you
> wanted to use java.net.URI, depending on where from `text` comes from and
> whereto it goes, you might need first to decode it using URLDecoder, and then
> you might need to re-encode it before spitting it out... That's a lot of
> operations where things could go wrong, especially if the link contains a
> query string.
That said a stricter regexp (unless I'm mistaken) could be:
`^[a-zA-Z][a-zA-Z0-9+-.]*:.*$`
[ from RFC 2396: scheme = alpha *( alpha | digit | "+" | "-" | "." )
]
-------------
PR: https://git.openjdk.java.net/jdk/pull/5198