用于检查字符串是否为语言环境的正则表达式,如 locale_Culture
Regexpression for check if string is locale like locale_Culture
我想检查字符串是否是 en
、uk
等语言环境。我用这个 reg exp:
/^[a-z]{2}$/
但我想使用由区域设置和文化组成的区域设置来执行此操作,例如 en_US
或 en_EN
。我对正则表达式的了解太纯粹了,无法做到这一点。有人可以帮我吗?谢谢!
给你:
/^[a-z]{2}_[A-Z]{2}$/
这是正确的:)
/^[a-z]{2}_[A-Z]{2}$/
/^[a-z]{2}(?:_[A-Z]{2})?$/
解释:
- ^ 注释 file/string
的开始
- [a-z]{2} 检查
en
、br
等
- (?:_[A-Z]{2})? 匹配
en_US
、en_EN
的可选非捕获组
等等
- $ 注释 file/string
的结尾
要使第二部分成为强制性的,请省略最新的 ?
您想验证哪种区域设置标识符?
不止一个。
例如 Linux 你有 en_US.UTF-8
BCP 47 允许使用更复杂的方式(例如 rs_Latn_RS,或 ja@calendar=japanese)(https://tools.ietf.org/html/bcp47)
如果您想要 PHP 语言环境,那么您需要 BCP 47 语法(RFC 4646 是 BCP 47 的一部分):
Locales are identified using RFC 4646 language tags
http://php.net/manual/en/class.locale.php
如果是这样,那么用正则表达式处理可能太复杂了。
我想检查字符串是否是 en
、uk
等语言环境。我用这个 reg exp:
/^[a-z]{2}$/
但我想使用由区域设置和文化组成的区域设置来执行此操作,例如 en_US
或 en_EN
。我对正则表达式的了解太纯粹了,无法做到这一点。有人可以帮我吗?谢谢!
给你:
/^[a-z]{2}_[A-Z]{2}$/
这是正确的:)
/^[a-z]{2}_[A-Z]{2}$/
/^[a-z]{2}(?:_[A-Z]{2})?$/
解释:
- ^ 注释 file/string 的开始
- [a-z]{2} 检查
en
、br
等 - (?:_[A-Z]{2})? 匹配
en_US
、en_EN
的可选非捕获组 等等 - $ 注释 file/string 的结尾
要使第二部分成为强制性的,请省略最新的 ?
您想验证哪种区域设置标识符? 不止一个。
例如 Linux 你有 en_US.UTF-8 BCP 47 允许使用更复杂的方式(例如 rs_Latn_RS,或 ja@calendar=japanese)(https://tools.ietf.org/html/bcp47)
如果您想要 PHP 语言环境,那么您需要 BCP 47 语法(RFC 4646 是 BCP 47 的一部分):
Locales are identified using RFC 4646 language tags
http://php.net/manual/en/class.locale.php
如果是这样,那么用正则表达式处理可能太复杂了。