0

これが元の正規表現です

/^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/

これは電子メールを適切に検証しますが、入力@test.comすると許可されました。追加した{1}

/^([A-Za-z0-9_\-\.]{1})+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/

gskinner.comでこれをテストし、正常に動作しました。@test.com は許可されません。

しかし、私のサイトでは、まだ機能していません。それはまだ許します@test.com

4

2 に答える 2

0

メールを検証するための Google の正規表現は、ユースケースの 99% をカバーします。

/**
 * Checks if the provided string is a valid address spec (local@domain.com).
 * @param {string} str The email address to check.
 * @return {boolean} Whether the provided string is a valid address spec.
 */
goog.format.EmailAddress.isValidAddrSpec = function(str) {
  // This is a fairly naive implementation, but it covers 99% of use cases.
  // For more details, see http://en.wikipedia.org/wiki/Email_address#Syntax
  // TODO(mariakhomenko): we should also be handling i18n domain names as per
  // http://en.wikipedia.org/wiki/Internationalized_domain_name
  var filter =
      /^[+a-zA-Z0-9_.!#$%&'*\/=?^`{|}~-]+@([a-zA-Z0-9-]+\.)+[a-zA-Z0-9]{2,6}$/;
  return filter.test(str);
};

Google のクロージャ ライブラリのgoog.format.EmailAddress クラスから。

于 2013-04-21T16:51:08.903 に答える