UNPKG

vuelidate

Version:

Simple, lightweight model-based validation for Vue.js

31 lines (24 loc) 602 B
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 }