aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIvan Enderlin <ivan.enderlin@hoa-project.net>2013-08-15 11:20:45 +0200
committerIvan Enderlin <ivan.enderlin@hoa-project.net>2013-08-15 11:20:45 +0200
commit72c5e92b09618519bb7f2e31922732a157fb0eb6 (patch)
tree99c7e19ed46d9ed702f96deb77b5b8e7ac127f17
parentadafd058f031c94e8a193e9f0836140422a013ee (diff)
downloadUstring-72c5e92b09618519bb7f2e31922732a157fb0eb6.zip
Ustring-72c5e92b09618519bb7f2e31922732a157fb0eb6.tar.gz
Ustring-72c5e92b09618519bb7f2e31922732a157fb0eb6.tar.bz2
Hoa\String::trim() trims other characters than \s.
-rw-r--r--Documentation/Fr/Index.xyl6
-rw-r--r--String.php12
2 files changed, 14 insertions, 4 deletions
diff --git a/Documentation/Fr/Index.xyl b/Documentation/Fr/Index.xyl
index a46a671..7e55b80 100644
--- a/Documentation/Fr/Index.xyl
+++ b/Documentation/Fr/Index.xyl
@@ -133,7 +133,7 @@ $japanese = new Hoa\String('私はあなたを愛して');</code></pre>
* Will output:
* أحبك
*/</code></pre>
- <p>Une opération similairement inverse permet de supprimer les
+ <p>Une opération similairement inverse permet de supprimer, par défaut, les
<strong>espaces</strong> en début et en fin de chaîne grâce à la méthode
<code>Hoa\String::trim</code>. Par exemple, pour revenir à notre chaîne arabe
originale :</p>
@@ -143,6 +143,10 @@ $japanese = new Hoa\String('私はあなたを愛して');</code></pre>
* Will output:
* أحبك
*/</code></pre>
+ <p>Si nous voulons supprimer d'autres caractères, nous pouvons utiliser son
+ seul argument qui doit être une expression régulière. Par exemple, pour
+ supprimer tous les nombres et les espaces, nous écrirons :</p>
+ <pre><code class="language-php">$arabic->trim('\s|\d');</code></pre>
<p>Nous pouvons également <strong>réduire</strong> la chaîne à une
<strong>sous-chaîne</strong> en précisant la position du premier caractère
puis la taille de la sous-chaîne à la méthode
diff --git a/String.php b/String.php
index 7c1c13c..6c05967 100644
--- a/String.php
+++ b/String.php
@@ -444,14 +444,20 @@ class String implements \ArrayAccess, \Countable, \IteratorAggregate {
}
/**
- * Strip whitespaces and other characters (\s) of the current string.
+ * Strip characters (default \s) of the current string.
*
* @access public
+ * @param string $regex Characters to remove.
* @return \Hoa\String
*/
- public function trim ( ) {
+ public function trim ( $regex = '\s' ) {
- $this->_string = preg_replace('#(^\s+)|(\s+$)#u', '', $this->_string);
+ $regex = '(?:' . $regex . ')+';
+ $this->_string = preg_replace(
+ '#(^' . $regex . ')|(' . $regex . '$)#u',
+ '',
+ $this->_string
+ );
$this->_direction = null;
return $this;