1. 首页
  2. WordPress钩子手册

is_email

apply_filters( ‘is_email’, string|false $is_email, string $email, string $context )

筛选挂钩:筛选电子邮件地址是否有效。
Filter Hook: Filters whether an email address is valid.

目录锚点:#说明#参数#源码


说明(Description)

此筛选器在几个不同的上下文下进行计算,例如“email_too_short”、“email_no_at”、“local_invalid_chars”、“domain_period_sequence”、“domain_period_limits”、“domain_no_periods”、“sub_hyphen_limits”、“sub_invalid_chars”或没有特定上下文。


参数(Parameters)

参数 类型 说明
$is_email (string | false) 电子邮件地址如果成功通过了is_email()检查,则为false。
$email (string) 正在检查的电子邮件地址。
$context (string) 测试电子邮件的上下文。

源码(Source)

/**
 * Verifies that an email is valid.
 *
 * Does not grok i18n domains. Not RFC compliant.
 *
 * @since 0.71
 *
 * @param string $email      Email address to verify.
 * @param bool   $deprecated Deprecated.
 * @return string|bool Either false or the valid email address.
 */
function is_email( $email, $deprecated = false ) {
	if ( ! empty( $deprecated ) )
		_deprecated_argument( __FUNCTION__, '3.0' );

	// Test for the minimum length the email can be
	if ( strlen( $email ) < 3="" )="" {="" *="" *="" filter="" whether="" an="" email="" address="" is="" valid.="" *="" *="" this="" filter="" is="" evaluated="" under="" several="" different="" contexts,="" such="" as="" 'email_too_short',="" *="" 'email_no_at',="" 'local_invalid_chars',="" 'domain_period_sequence',="" 'domain_period_limits',="" *="" 'domain_no_periods',="" 'sub_hyphen_limits',="" 'sub_invalid_chars',="" or="" no="" specific="" context.="" *="" *="" @since="" 2.8.0="" *="" *="" @param="" bool="" $is_email="" whether="" the="" email="" address="" has="" passed="" the="" is_email()="" checks.="" default="" false.="" *="" @param="" string="" $email="" the="" email="" address="" being="" checked.="" *="" @param="" string="" $message="" an="" explanatory="" message="" to="" the="" user.="" *="" @param="" string="" $context="" context="" under="" which="" the="" email="" was="" tested.="" */="" return="" apply_filters(="" 'is_email',="" false,="" $email,="" 'email_too_short'="" );="" }="" test="" for="" an="" @="" character="" after="" the="" first="" position="" if="" (="" strpos(="" $email,="" '@',="" 1="" )="==" false="" )="" {="" *="" this="" filter="" is="" documented="" in="" wp-includes/formatting.php="" */="" return="" apply_filters(="" 'is_email',="" false,="" $email,="" 'email_no_at'="" );="" }="" split="" out="" the="" local="" and="" domain="" parts="" list(="" $local,="" $domain="" )="explode(" '@',="" $email,="" 2="" );="" local="" part="" test="" for="" invalid="" characters="" if="" (="" !preg_match(="" '/^&#91;a-za-z0-9!#$%&'*+\/="?^_`{|}~.-&#93;+$/'," $local="" )="" )="" {="" *="" this="" filter="" is="" documented="" in="" wp-includes/formatting.php="" */="" return="" apply_filters(="" 'is_email',="" false,="" $email,="" 'local_invalid_chars'="" );="" }="" domain="" part="" test="" for="" sequences="" of="" periods="" if="" (="" preg_match(="" '/.{2,}/',="" $domain="" )="" )="" {="" *="" this="" filter="" is="" documented="" in="" wp-includes/formatting.php="" */="" return="" apply_filters(="" 'is_email',="" false,="" $email,="" 'domain_period_sequence'="" );="" }="" test="" for="" leading="" and="" trailing="" periods="" and="" whitespace="" if="" (="" trim(="" $domain,="" "="" x0b."="" )="" !="=" $domain="" )="" {="" *="" this="" filter="" is="" documented="" in="" wp-includes/formatting.php="" */="" return="" apply_filters(="" 'is_email',="" false,="" $email,="" 'domain_period_limits'="" );="" }="" split="" the="" domain="" into="" subs="" $subs="explode(" '.',="" $domain="" );="" assume="" the="" domain="" will="" have="" at="" least="" two="" subs="" if="" (="" 2=""> count( $subs ) ) {
		/** This filter is documented in wp-includes/formatting.php */
		return apply_filters( 'is_email', false, $email, 'domain_no_periods' );
	}

	// Loop through each sub
	foreach ( $subs as $sub ) {
		// Test for leading and trailing hyphens and whitespace
		if ( trim( $sub, " 	

x0B-" ) !== $sub ) {
			/** This filter is documented in wp-includes/formatting.php */
			return apply_filters( 'is_email', false, $email, 'sub_hyphen_limits' );
		}

		// Test for invalid characters
		if ( !preg_match('/^[a-z0-9-]+$/i', $sub ) ) {
			/** This filter is documented in wp-includes/formatting.php */
			return apply_filters( 'is_email', false, $email, 'sub_invalid_chars' );
		}
	}

	// Congratulations your email made it!
	/** This filter is documented in wp-includes/formatting.php */
	return apply_filters( 'is_email', $email, $email, null );
}
更新版本 源码位置 使用 被使用
2.8.0 wp-includes/formatting.php:3409 1 0

is_email 为WP2原创文章,链接:https://www.wp2.cn/hook/is_email-2/