diff --git src/wp-includes/functions.php src/wp-includes/functions.php
index a2070c1ec7..b9320b2045 100644
--- src/wp-includes/functions.php
+++ src/wp-includes/functions.php
@@ -528,7 +528,7 @@ function is_serialized( $data, $strict = true ) {
 		case 'i':
 		case 'd':
 			$end = $strict ? '$' : '';
-			return (bool) preg_match( "/^{$token}:[0-9.E-]+;$end/", $data );
+			return (bool) preg_match( "/^{$token}:[0-9.+E-]+;$end/", $data );
 	}
 	return false;
 }
diff --git tests/phpunit/tests/functions.php tests/phpunit/tests/functions.php
index 53f6e2cd5c..50bf9305de 100644
--- tests/phpunit/tests/functions.php
+++ tests/phpunit/tests/functions.php
@@ -213,7 +213,7 @@ class Tests_Functions extends WP_UnitTestCase {
 					'3',
 					4,
 				)
-			),
+			)
 		);
 		foreach ( $cases as $case ) {
 			$this->assertTrue( is_serialized( $case ), "Serialized data: $case" );
@@ -229,6 +229,24 @@ class Tests_Functions extends WP_UnitTestCase {
 		}
 	}
 
+	/**
+	 * @ticket 46570
+	 */
+	function test_is_serialized_should_return_true_for_large_digits() {
+
+		$cases = array(
+			serialize( 1.7976931348623157E+308 ),
+			serialize( array( 1.7976931348623157E+308, 1.23e50 ) )
+		);
+
+		foreach( $cases as $case ) {
+
+			$this->assertTrue( is_serialized( $case ), "Serialized data: $case" );
+
+		}
+
+	}
+
 	/**
 	 * @ticket 17375
 	 */
