0

我想对这 3 个两个字符的国家代码进行正则表达式:JavaScript 中的 de,fr,es。

/^(de|fr|es)/i

它是否正确?

4

4 回答 4

1

如果它是字符串包含的所有内容,那么您还应该检查字符串是否在那里结束,

/^(?:de|fr|es)$/i
于 2012-11-07T15:27:41.393 回答
0

是的,这是正确的。但它也适用于“fr”和“french”。这是一个测试正则表达式的神奇网络:

http://gskinner.com/RegExr/

于 2012-11-07T15:27:33.203 回答
0

您可以通过查找单词边界来确保它与法语不匹配。

/\b(de|fr|es)\b/i

这将匹配fr任何这些示例fr,deorfr defr-de,但不匹配franceorfreedom

可能更具体到您正在寻找的东西。

于 2012-11-07T15:31:10.197 回答
0

根据字符串的确切外观,您有多种选择:

/^(?:de|fr|es)$/ // string contains only county code

/\b(?:de|fr|en)\b/ // looking for word boundaries 
                   // so it matches "en" but not "english"

很可能您不需要捕获组,这就是为什么使用(?:)使其不捕获的原因。

于 2012-11-07T15:32:49.813 回答