]> scripts.mit.edu Git - autoinstalls/mediawiki.git/blob - includes/htmlform/fields/HTMLIntField.php
MediaWiki 1.30.2
[autoinstalls/mediawiki.git] / includes / htmlform / fields / HTMLIntField.php
1 <?php
2
3 /**
4  * A field that must contain a number
5  */
6 class HTMLIntField extends HTMLFloatField {
7         public function validate( $value, $alldata ) {
8                 $p = parent::validate( $value, $alldata );
9
10                 if ( $p !== true ) {
11                         return $p;
12                 }
13
14                 # https://www.w3.org/TR/html5/infrastructure.html#signed-integers
15                 # with the addition that a leading '+' sign is ok. Note that leading zeros
16                 # are fine, and will be left in the input, which is useful for things like
17                 # phone numbers when you know that they are integers (the HTML5 type=tel
18                 # input does not require its value to be numeric).  If you want a tidier
19                 # value to, eg, save in the DB, clean it up with intval().
20                 if ( !preg_match( '/^((\+|\-)?\d+)?$/', trim( $value ) ) ) {
21                         return $this->msg( 'htmlform-int-invalid' );
22                 }
23
24                 return true;
25         }
26 }