JavaScript で de、fr、es の 3 つの 2 文字の国コードを正規表現したいと考えています。
/^(de|fr|es)/i
これは正しいです?
それがすべての文字列に含まれている場合は、文字列がそこで終わっていることも確認する必要があります。
/^(?:de|fr|es)$/i
単語の境界を探すことで、フランス語と一致しないことを確認できます。
/\b(de|fr|es)\b/i
これはfr
、これらの例のfr,de
orfr de
またはのいずれにも一致しますが、 orには一致しfr-de
ません。france
freedom
あなたが探しているものにより具体的かもしれません。
はい、これは正しいです。ただし、「fr」と「french」でも機能します。正規表現をテストするための素晴らしい Web を次に示します。
文字列が正確にどのように見えるかに応じて、いくつかのオプションがあります。
/^(?:de|fr|es)$/ // string contains only county code
/\b(?:de|fr|en)\b/ // looking for word boundaries
// so it matches "en" but not "english"
ほとんどの場合、キャプチャ グループは必要ないため、 を使用(?:)
して非キャプチャ グループにします。