私はPHPで小さなアプリケーションを構築、および(E-mailアドレスでの使用のための)ドメイン名を検証する必要があるんです。たとえば[email protected]がある場合は、gmail.comが有効なドメイン名であるかどうかを確認したいと考えています(@の前に部分的に捨ててしまいます)。
私は、次のコードを使用している:
if (!preg_match ("/^[a-z0-9][a-z0-9\-]+[a-z0-9](\.[a-z]{2,4})+$/i", trim($valid_emails[$i]))) {
// Return error
}
を、すべてが正常に動作しています。 GE MoneyBankがクライアントになるまで。彼らはドメインとしてge.comを使用していますが、それは合格しません。
私はregexの基本的な理解をしており、最小文字数が2になるように[a-z0-9]ブロックの一部を削除しようとしましたが、運がありません。より多くの経験を持つ方が私に正しい方向を向けることができますか?文字や数字
- [a-z0-9\-]+
: - [a-z0-9]
:あなたが現在持っているどのような事前
それは '.museum'のTLDのいずれかを処理しません。 。 – Quentin
dupe? http://stackoverflow.com/questions/156430/regexp-recognition-of-email-address-hard http://stackoverflow.com/questions/201323/what-is-the-best-regular-expression-for -validating-email-addresses – mth
@David Dorward、私の答えは、すべての既知のTLDをサポートする必要があります。 –