feat: add js_trim() and mb_trim() compat #9519
Open
+265
−0
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
PHP’s trim() function, by default, only strips a limited set of ASCII whitespace characters, and mb_trim(), introduced in PHP 8.4, does not behave identically to JavaScript’s String.prototype.trim().
This PR implements
js_trim()
, a PHP function that replicates JavaScript’sString.prototype.trim()
behavior.It works by defining a set of
$js_trimmables
characters, which are passed tomb_trim()
withUTF-8
encoding.In addition, this PR adds a polyfill for
mb_trim()
incompat.php
to support PHP versions below 8.4 with unit tests for bothjs_trim()
andmb_trim()
Trac ticket: https://core.trac.wordpress.org/ticket/63804
This Pull Request is for code review only. Please keep all other discussion in the Trac ticket. Do not merge this Pull Request. See GitHub Pull Requests for Code Review in the Core Handbook for more details.