我真的不懂正则表达式,我也找不到任何正则表达式规则来验证文化代码:en-GB,en-UK,az-AZ-Cyrl,其他。
如何使用正则表达式验证这些代码?
答案 0 :(得分:31)
您可以使用以下方式进行验证:
/^[a-z]{2,3}(?:-[A-Z]{2,3}(?:-[a-zA-Z]{4})?)?$/
以下是它的工作原理
^ <- Starts with
[a-z] <- From a to z (lower-case)
{2,3} <- Repeated at least 2 times, at most 3
(?: <- Non capturing group
- <- The "-" character
[A-Z] <- From a to z (upper-case)
{2,3} <- Repeated at least 2 times, at most 3
(?: <- Non capturing group
- <- The "-" character
[a-zA-Z] <- from a to Z (case insensitive)
{4} <- Repeated 4 times
) <- End of the group
? <- Facultative
) <- End of the group
? <- Facultative
$ <- Ends here
如果唯一选项是Cyrl和Latn
,您还可以用(?:-(?:Cyrl|Latn))?
替换最后一个非捕获组
答案 1 :(得分:6)
这是我在Dublin Core / W3C xsd中发现的:http://www.w3.org/2001/XMLSchema
<xs:simpleType name="language" id="language">
<xs:annotation>
<xs:documentation
source="http://www.w3.org/TR/xmlschema-2/#language"/>
</xs:annotation>
<xs:restriction base="xs:token">
<xs:pattern
value="[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*"
id="language.pattern">
<xs:annotation>
<xs:documentation
source="http://www.ietf.org/rfc/rfc3066.txt">
pattern specifies the content of section 2.12 of XML 1.0e2
and RFC 3066 (Revised version of RFC 1766).
</xs:documentation>
</xs:annotation>
</xs:pattern>
</xs:restriction>
</xs:simpleType>
然后模式是:
[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*
答案 2 :(得分:4)
根据https://en.wikipedia.org/wiki/IETF_language_tag,正则表达式可以是:
/^[a-z]{2,3}(?:-[a-zA-Z]{4})?(?:-[A-Z]{2,3})?$/
来自wiki:
基于ISO 639-1(2002)的双字母语言代码或ISO 639-2(1998),ISO 639-3(2007)或ISO 639-的三字母代码的单个主要语言子标签5(2008),或通过BCP 47注册过程并由五至八个字母组成;
可选脚本子标签,基于ISO 15924的四字母脚本代码(通常以标题为例);
一个可选的区域子标签,基于ISO 3166-1 alpha-2的双字母国家代码(通常以大写字母书写),或UN M.49的三位数代码,用于地理区域;
答案 3 :(得分:0)
根据
<块引用>语言标签由一个或多个部分组成:一个主要语言子标签和一系列(可能为空的)后续子标签。
这个标签在 ABNF [RFC 2234] 中的语法是:
Language-Tag = Primary-subtag *( "-" Subtag )
Primary-subtag = 1*8ALPHA
Subtag = 1*8(ALPHA / DIGIT)
ALPHA 和 DIGIT 的作品是从 RFC 2234 导入的;它们分别表示大写或小写的字符A
到Z
和从0
到9
的数字。字符“-
”是连字符减号(ABNF:%x2D
)。
Language-Tag
是
/^[a-z]{1,8}(?:\-[a-z0-9]{1,8})*$/i
(A Javascript regular expression. The “i” denotes case-insensitiveness.)
答案 4 :(得分:-3)
^(I:AF | AX | AL | DZ | AS | AD | AO | AI | AQ | AG | AR | AM | AW | AU | AT | AZ | BS | BH | BD | BB | BY | BE | BZ |北京| BM | BT | BO | BQ | BA | BW | BV | BR | IO | BN | BG | BF | BI | KH | CM | CA |简历| KY | CF | TD | CL | CN | CX | CC |公司| KM | CG | CD | CK | CR | CI | HR | CU | CW | CY | CZ | DK | DJ | DM | DO | EC | EG | SV | GQ | ER | EE | ET | FK | FO | FJ | FI | FR | GF | PF | TF | GA |通用| GE | DE | GH | GI | GR | GL |广东| GP | GU | GT | GG | GN | GW | GY | HT | HM | VA | HN | HK | HU | IS | IN | ID | IR | IQ | IE | IM | IL | IT | JM | JP | JE | JO | KZ | KE | KI | KP | KR | KW | KG | LA | LV | LB | LS | LR | LY |李| LT |陆| MO | MK | MG |兆瓦| MY | MV | ML | MT | MH | MQ | MR | MU | YT | MX | FM | MD | MC | MN | ME | MS | MA | MZ | MM | NA | NR | NP | NL | NC | NZ | NI | NE | NG | NU | NF | MP | NO | OM | PK | PW | PS | PA | PG | PY | PE | PH | PN | PL | PT | PR | QA |地产| RO | RU | RW | BL | SH | KN | LC | MF |发短消息| VC | WS | SM | ST | SA | SN | RS | SC | SL | SG | SX | SK | SI | SB | SO | ZA | GS | SS | ES | LK | SD | SR | SJ | SZ | SE | CH | SY | TW | TJ | TZ | TH | TL | TG | TK | TO | TT | TN | TR | TM | TC |电视| UG | UA | AE | GB |美| UM | UY | UZ | VU | VE | VN | VG | VI | WF | EH | YE | ZM | ZW)$