質問: メールアドレスのバリデーションを作成しております。 形式チェックに加えて、yahooアドレスとgoogleアドレスをはじくようにしたいと思っています。 以下の表現を書いてみたのですが、うまく動作しません。 ``` /^[a-zA-Z0-9]+[A-Za-z0-9\._%-]+@([a-zA-Z0-9]|!google|!yahoo)+[A-Za-z0-9\.-]+\.[A-Za-z]{1,5}$/ ``` どこがおかしいのか教えていただければ幸いです。
回答: javascriptの正規表現は肯定・否定の先読みができるので @の直後はこうしてください ``` @(?!google|yahoo) ``` まぁ一度通常のメールアドレスのチェックをした上で その後yahooとgoogleを弾くような2段階処理の方が 見やすいと思いますけどね