为什么jsdom将我的属性* values *设置为全部小写?

时间:2019-01-30 20:04:24

标签: jsdom

这是示例代码。在网络风暴中运行。     “ jsdom”:“ ^ 13.2.0”     节点10.15.0

public static IEnumerable<char> AlphabetSubset3(char start, char end)
{
    if (start < 'a' || start > 'z')
        throw new ArgumentOutOfRangeException(paramName: nameof(start), message: "start must be a letter");
    if (end < 'a' || end > 'z')
        throw new ArgumentOutOfRangeException(paramName: nameof(end), message: "end must be a letter");

    if (end <= start)
        throw new ArgumentException($"{nameof(end)} must be greater than {nameof(start)}");

    return alphabetSubsetImplementation();

    IEnumerable<char> alphabetSubsetImplementation(bool throwAnException = false)
    {
        if (throwAnException) { throw Exception("You asked me to do this"); }

        for (var c = start; c < end; c++)
            yield return c;
    }
}

请注意“资源”一词的大小写更改。 我知道属性名称不区分大小写,但是值应该是,不是吗?

1 个答案:

答案 0 :(得分:1)

您的URI的zlib部分是主机名。主机名不区分大小写,并且URI Generic Syntax (RFC3986)状态:

  

尽管主机不区分大小写,但为保持一致,生产者和规范化者应为注册名称和十六进制地址使用小写字母,而对百分比编码仅使用大写字母。

这里发生的是JSDOM正在规范主机名,并且正在这样做使其小写。 (顺便说一句,在Chrome中输入相同的URI,您会看到Chrome的功能相同。)

如果您的URI没有主机名,则需要这样写:

MySQL

请注意testResource前的其他斜杠。该URI的主机名为空。主机名为空时,file:///testResource/test.js 是可理解的主机。