4

我需要验证一些用户输入。据我了解,“en-US”是有效的标准 HTTP 语言环境,而“en_GB”不是。有没有办法验证这一点?

4

1 回答 1

1

这是规格

HTTP 语言标签的语法和注册表与 RFC 1766 1定义的相同。总之,一个语言标签由一个或多个部分组成:一个主要语言标签和一系列可能为空的子标签:

    language-tag  = primary-tag *( "-" subtag )
    primary-tag   = 1*8ALPHA
    subtag        = 1*8ALPHA

[...] 其中任何两个字母的主标签都是 ISO-639 语言缩写,任何两个字母的初始子标签都是 ISO-3166 国家代码。(上面的最后三个标签不是注册标签;除了最后一个之外都是未来可能注册的标签示例。)

这里是国家代码。当然,“GB”在列表中。

en-GB完全可以,但en_GB不是。

于 2012-10-08T14:56:11.597 回答