diff --git a/README.md b/README.md
index 5bdb0d1..0dc77ee 100644
--- a/README.md
+++ b/README.md
@@ -287,6 +287,7 @@ Below is list of all available validation rules
* [digits](#rule-digits)
* [digits_between](#rule-digits_between)
* [url](#rule-url)
+* [integer](#rule-integer)
* [ip](#rule-ip)
* [ipv4](#rule-ipv4)
* [ipv6](#rule-ipv6)
@@ -513,6 +514,10 @@ $validation = $validator->validate($inputs, [
> For common URL scheme and mailto, we combine `FILTER_VALIDATE_URL` to validate URL format and `preg_match` to validate it's scheme.
Except for JDBC URL, currently it just check a valid JDBC scheme.
+
+#### integer
+The field under this rule must be integer.
+
#### ip
diff --git a/src/Rules/Integer.php b/src/Rules/Integer.php
new file mode 100644
index 0000000..04ffd7c
--- /dev/null
+++ b/src/Rules/Integer.php
@@ -0,0 +1,17 @@
+ new Rules\Max,
'between' => new Rules\Between,
'url' => new Rules\Url,
+ 'integer' => new Rules\Integer,
'ip' => new Rules\Ip,
'ipv4' => new Rules\Ipv4,
'ipv6' => new Rules\Ipv6,
diff --git a/tests/Rules/IntegerTest.php b/tests/Rules/IntegerTest.php
new file mode 100644
index 0000000..7e0304f
--- /dev/null
+++ b/tests/Rules/IntegerTest.php
@@ -0,0 +1,33 @@
+rule = new Integer;
+ }
+
+ public function testValids()
+ {
+ $this->assertTrue($this->rule->check(0));
+ $this->assertTrue($this->rule->check('0'));
+ $this->assertTrue($this->rule->check('123'));
+ $this->assertTrue($this->rule->check('-123'));
+ $this->assertTrue($this->rule->check(123));
+ $this->assertTrue($this->rule->check(-123));
+
+ }
+
+ public function testInvalids()
+ {
+ $this->assertFalse($this->rule->check('foo123'));
+ $this->assertFalse($this->rule->check('123foo'));
+ $this->assertFalse($this->rule->check([123]));
+ $this->assertFalse($this->rule->check('123.456'));
+ $this->assertFalse($this->rule->check('-123.456'));
+ }
+
+}