How to validate an IP in a text field AngularJS




Matches through

If you want to drop and255.255.255.255 I suggest you to add additional if statement. Otherwise the regex will be too complicated.

Example with watcher:

$scope.ip = '';

    $scope.$watch(function () {
        return $scope.ip;

    function (newVal, oldVal) {            
        if (
            newVal != '' && newVal != '' &&
             // Match attempt succeeded
        } else {
            // Match attempt failed

Demo Fiddle


The best bet is to create directive, something like: <ip-input>

This example might helpful how to create directive for custom input: format-input-value-in-angularjs


Related videos on Youtube

Author by


I am a full-stack web developer and solutions consultant. Currently working as an Associate Principal Engineer at QBurst. Active member of GDG. Rest of the time I dedicated to opensource projects and Stackoverflow. Openstack foundation member. If you would like to contact me, email me at and This is my LinkedIn Profile.

Updated on September 21, 2022


  • Harikrishnan
    Harikrishnan less than a minute

    How to validate an IP in a textfield in AngularJS ? Currently I am using this code, but its not working in all cases . Any idea ?


  • Ronald91
    Ronald91 about 8 years
    Instead of adding a watch in your controller you can put this functionality inside an angular function and use that as an expression in the ng-change directive.
  • Maxim Shoustin
    Maxim Shoustin about 8 years
    @Ronald91 Well, for sure directive way is more appropriate, something like <input-ip>. But SO asks the regex validation. I added watcher only for demo. BTW, this is an example I wrote once with $parsers:…