我想对这 3 个两个字符的国家代码进行正则表达式:JavaScript 中的 de,fr,es。
/^(de|fr|es)/i
它是否正确?
如果它是字符串包含的所有内容,那么您还应该检查字符串是否在那里结束,
/^(?:de|fr|es)$/i
是的,这是正确的。但它也适用于“fr”和“french”。这是一个测试正则表达式的神奇网络:
您可以通过查找单词边界来确保它与法语不匹配。
/\b(de|fr|es)\b/i
这将匹配fr
任何这些示例fr,de
orfr de
或fr-de
,但不匹配france
orfreedom
可能更具体到您正在寻找的东西。
根据字符串的确切外观,您有多种选择:
/^(?:de|fr|es)$/ // string contains only county code
/\b(?:de|fr|en)\b/ // looking for word boundaries
// so it matches "en" but not "english"
很可能您不需要捕获组,这就是为什么使用(?:)
使其不捕获的原因。