Thiemo Mättig (WMDE) has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/192295

Change subject: Simplify 5-digit-year regex in DateTimeParser
......................................................................

Simplify 5-digit-year regex in DateTimeParser

The regex was not horrible but can be simpler. This replaces the
"match, split and recombine" approach with a simple "search and
replace".

Change-Id: Ie8e5eba16a1339f9dbef5597c4d065c4cd7c90b7
---
M lib/includes/parsers/DateTimeParser.php
1 file changed, 4 insertions(+), 3 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Wikibase 
refs/changes/95/192295/1

diff --git a/lib/includes/parsers/DateTimeParser.php 
b/lib/includes/parsers/DateTimeParser.php
index cd53f9f..b8585db 100644
--- a/lib/includes/parsers/DateTimeParser.php
+++ b/lib/includes/parsers/DateTimeParser.php
@@ -71,9 +71,10 @@
 
                        // PHP's DateTime object also can't handle larger than 
4 digit years,
                        // e.g. 1 June 202020
-                       if ( preg_match( '/^(.*\D)?(\d{5,})(.*)$/', $value, 
$matches ) ) {
-                               $value = $matches[1] . substr( $matches[2], -4 
) . $matches[3];
-                               $largeYear = $matches[2];
+                       if ( preg_match( '/\d{5,}/', $value, $matches, 
PREG_OFFSET_CAPTURE ) ) {
+                               $largeYear = $matches[0][0];
+                               $value = substr_replace( $value, substr( 
$largeYear, -4 ), $matches[0][1],
+                                       strlen( $largeYear ) );
                        }
 
                        $this->validateDateTimeInput( $value );

-- 
To view, visit https://gerrit.wikimedia.org/r/192295
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ie8e5eba16a1339f9dbef5597c4d065c4cd7c90b7
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Wikibase
Gerrit-Branch: master
Gerrit-Owner: Thiemo Mättig (WMDE) <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to