我想检查字符串是否是en
,uk
等语言环境。我通过此reg exp来做:
/^[a-z]{2}$/
但是我希望通过区域设置来实现这一点,包括来自语言环境和文化的内容,例如en_US
或en_EN
。我对正则表达式的了解太过纯粹,无法做到这一点。有人能帮助我吗?谢谢!
答案 0 :(得分:4)
您要验证哪种区域设置标识符? 不止一个。
例如在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的一部分):
使用RFC 4646语言标记识别语言环境
http://php.net/manual/en/class.locale.php
如果是这种情况,那么使用正则表达式来处理它可能太复杂了。
答案 1 :(得分:1)
你走了:
/^[a-z]{2}_[A-Z]{2}$/
答案 2 :(得分:1)
这是正确的:)
/^[a-z]{2}_[A-Z]{2}$/
答案 3 :(得分:1)
/^[a-z]{2}(?:_[A-Z]{2})?$/
<强>解释强>
en
,br
等。en_US
,en_EN
等要使第二部分成为强制性部分,请省略最新的?