Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Validation Functions

Functions for validating data: email, URL, UUID, and format validation.

Summary

FunctionSignatureDescription
is_base64string -> booleanCheck if valid Base64 encoding
is_credit_cardstring -> booleanValidate credit card number (Luhn check + length)
is_emailstring -> booleanValidate email address format
is_hexstring -> booleanCheck if valid hexadecimal string
is_ipv4string -> booleanValidate IPv4 address format
is_ipv6string -> booleanValidate IPv6 address format
is_iso_datestring -> booleanValidate ISO 8601 date format
is_jsonstring -> booleanCheck if string is valid JSON
is_jwtstring -> booleanCheck if valid JWT structure (3 base64url parts)
is_phonestring -> booleanValidate phone number format
is_urlstring -> booleanValidate URL format
is_uuidstring -> booleanValidate UUID format
luhn_checkstring -> booleanGeneric Luhn algorithm check

Functions

is_base64

Check if valid Base64 encoding

Signature: string -> boolean

Examples:

# Valid base64
is_base64('SGVsbG8=') -> true
# Invalid chars
is_base64('not valid!') -> false
# Empty is valid
is_base64('') -> true

CLI Usage:

echo '{}' | jpx 'is_base64(`"SGVsbG8="`)'

is_credit_card

Validate credit card number (Luhn check + length)

Signature: string -> boolean

Examples:

# Valid Visa test number
is_credit_card('4111111111111111') -> true
# Invalid number
is_credit_card('1234567890123456') -> false
# Valid Mastercard test
is_credit_card('5500000000000004') -> true

CLI Usage:

echo '{}' | jpx 'is_credit_card(`"4111111111111111"`)'

is_email

Validate email address format

Signature: string -> boolean

Examples:

# Valid email
is_email('user@example.com') -> true
# Missing @
is_email('invalid-email') -> false
# Subdomain
is_email('user@sub.domain.com') -> true

CLI Usage:

echo '{}' | jpx 'is_email(`"user@example.com"`)'

is_hex

Check if valid hexadecimal string

Signature: string -> boolean

Examples:

# Valid hex
is_hex('deadbeef') -> true
# Uppercase hex
is_hex('ABCDEF') -> true
# Invalid chars
is_hex('ghijkl') -> false

CLI Usage:

echo '{}' | jpx 'is_hex(`"deadbeef"`)'

is_ipv4

Validate IPv4 address format

Signature: string -> boolean

Examples:

# Valid IPv4
is_ipv4('192.168.1.1') -> true
# Out of range
is_ipv4('256.1.1.1') -> false
# Private IP
is_ipv4('10.0.0.1') -> true

CLI Usage:

echo '{}' | jpx 'is_ipv4(`"192.168.1.1"`)'

is_ipv6

Validate IPv6 address format

Signature: string -> boolean

Examples:

# Loopback
is_ipv6('::1') -> true
# Full IPv6
is_ipv6('2001:db8::1') -> true
# IPv4 is not IPv6
is_ipv6('192.168.1.1') -> false

CLI Usage:

echo '{}' | jpx 'is_ipv6(`"::1"`)'

is_iso_date

Validate ISO 8601 date format

Signature: string -> boolean

Examples:

# Full ISO format
is_iso_date('2023-12-13T15:30:00Z') -> true
# Date only
is_iso_date('2023-12-13') -> true
# US format invalid
is_iso_date('12/13/2023') -> false

CLI Usage:

echo '{}' | jpx 'is_iso_date(`"2023-12-13T15:30:00Z"`)'

is_json

Check if string is valid JSON

Signature: string -> boolean

Examples:

# Valid JSON object
is_json('{\"a\": 1}') -> true
# Valid JSON array
is_json('[1, 2, 3]') -> true
# Invalid JSON
is_json('not json') -> false

CLI Usage:

echo '{}' | jpx 'is_json(`"{\"a\": 1}"`)'

is_jwt

Check if valid JWT structure (3 base64url parts)

Signature: string -> boolean

Examples:

# Valid JWT
is_jwt('eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIn0.dozjgNryP4J3jVmNHl0w5N_XgL0n3I9PlFUP0THsR8U') -> true
# Three parts with dots
is_jwt('eyJhbGciOiJIUzI1NiJ9.eyJuYW1lIjoiSm9obiJ9.signature') -> true
# Four parts
is_jwt('not.a.valid.jwt') -> false
# No dots
is_jwt('invalid') -> false

CLI Usage:

echo '{}' | jpx 'is_jwt(`"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIn0.dozjgNryP4J3jVmNHl0w5N_XgL0n3I9PlFUP0THsR8U"`)'

is_phone

Validate phone number format

Signature: string -> boolean

Examples:

# US format with country code
is_phone('+1-555-123-4567') -> true
# US format without country code
is_phone('555-123-4567') -> true
# UK format
is_phone('+44 20 7946 0958') -> true
# Invalid phone
is_phone('invalid') -> false

CLI Usage:

echo '{}' | jpx 'is_phone(`"+1-555-123-4567"`)'

is_url

Validate URL format

Signature: string -> boolean

Examples:

# Simple HTTPS URL
is_url('https://example.com') -> true
# URL with port and path
is_url('http://localhost:8080/path') -> true
# FTP URL
is_url('ftp://files.example.com') -> true
# Invalid URL
is_url('not a url') -> false

CLI Usage:

echo '{}' | jpx 'is_url(`"https://example.com"`)'

is_uuid

Validate UUID format

Signature: string -> boolean

Examples:

# Valid UUID v4
is_uuid('550e8400-e29b-41d4-a716-446655440000') -> true
# Valid UUID v1
is_uuid('6ba7b810-9dad-11d1-80b4-00c04fd430c8') -> true
# Nil UUID
is_uuid('00000000-0000-0000-0000-000000000000') -> true
# Invalid format
is_uuid('not-a-uuid') -> false

CLI Usage:

echo '{}' | jpx 'is_uuid(`"550e8400-e29b-41d4-a716-446655440000"`)'

luhn_check

Generic Luhn algorithm check

Signature: string -> boolean

Examples:

# Valid Luhn number
luhn_check('79927398713') -> true
# Valid credit card number
luhn_check('4532015112830366') -> true
# Invalid Luhn
luhn_check('1234567890') -> false
# Single zero
luhn_check('0') -> true

CLI Usage:

echo '{}' | jpx 'luhn_check(`"79927398713"`)'