最小长度的有效查询字符串是多少?

What is the smallest length valid query string?

a URL 可以拥有的最小长度有效查询字符串是多少?

RFC3986#section-3.4

The query component is indicated by the first question
mark ("?") character and terminated by a number sign ("#") character
or by the end of the URI.
...
query       = *( pchar / "/" / "?" )

所以,它的长度是三:pchar/?

或者是两个:/?

为了提供一些代码和上下文,我正在 GWT 中检查它:

if(Location.getQueryString().isEmpty() || Location.getQueryString().length() < 1) { //or whatever valid min length for query strings is

我主要关心的是确保我们使用的查询字符串有效。所以为了验证这一点,我正在检查它是否为空。在使用 Location.getQueryString() 时,我还应该检查什么以确保这一点?

Window.Location.getQueryString() 是 JS window.location.search 的 GWT 版本。这意味着当 URL 根本不包含查询字符串时它为空(或 null?尚未检查),否则以 ? 开头(意味着它等于 ?如果查询字符串存在但为“空”,例如 URL 以 ? 结尾或 ? 后直接跟 #).


回复。问题的开头,*( pchar / "/" / "?" ) 表示“任意数量的字符匹配 pchar 生产,或 /?pchar 定义一组有效字符,或 % 编码的字符)。所以长度由生产的 * 部分决定,这意味着 0 or more。但这定义了查询字符串,没有 ? 分隔符;而 window.location.search 将包含 ? 如果 URL.

中有查询字符串