JavaScript:Regex用于两个字符的国家/地区代码

JavaScript:Regex用于两个字符的国家/地区代码,javascript,regex,Javascript,Regex,我想对这3个两个字符的国家代码进行正则表达式:JavaScript中的de、fr、es /^(de|fr|es)/i 这是正确的吗?是的,这是正确的。但它也适用于“fr”和“french”。 下面是一个测试正则表达式的神奇网站: 如果它是字符串包含的所有内容,那么您还应该检查字符串是否在此处结束 /^(?:de|fr|es)$/i 您可以通过查找单词边界来确保它与法语不匹配 /\b(de|fr|es)\b/i 这将在这些示例中的任何一个中匹配fr,de或fr de或fr de,但在法国或自

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

/^(de|fr|es)/i

这是正确的吗?

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


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

/^(?:de|fr|es)$/i

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

/\b(de|fr|es)\b/i
这将在这些示例中的任何一个中匹配
fr
,de或
fr de
fr de
,但在
法国
自由


可能更具体于您要查找的内容。

根据字符串的确切外观,您有几个选项:

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

/\b(?:de|fr|en)\b/ // looking for word boundaries 
                   // so it matches "en" but not "english"
很可能您不需要捕获组,这就是为什么使用
(?:)
使其不捕获。

/\b[de|fr|es]\b/i.test('e')==true
您使用了错误的括号。