HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //home/arjun/projects/buyercall/node_modules/vuelidate/src/validators/ipAddress.js
import { req, withParams } from './common'
export default withParams({ type: 'ipAddress' }, (value) => {
  if (!req(value)) {
    return true
  }

  if (typeof value !== 'string') {
    return false
  }

  const nibbles = value.split('.')
  return nibbles.length === 4 && nibbles.every(nibbleValid)
})

const nibbleValid = (nibble) => {
  if (nibble.length > 3 || nibble.length === 0) {
    return false
  }

  if (nibble[0] === '0' && nibble !== '0') {
    return false
  }

  if (!nibble.match(/^\d+$/)) {
    return false
  }

  const numeric = +nibble | 0
  return numeric >= 0 && numeric <= 255
}