JavaScript Interview Questions
  • JavaScript Interview Questions
  • Contact
  • Introduction
  • Question 1
  • Question 2
  • Question 3
  • Question 4
  • Question 5
  • Question 6
  • Question 7
  • Question 8
  • Question 9
  • Question 10
  • Question 11
  • Question 12
  • Question 13
  • Question 14
  • Question 15
  • Question 16
  • Question 17
  • Question 18
  • Question 19
  • Question 20
  • Question 21
  • Question 22
  • Question 23
  • Question 24
  • Question 25
  • Question 26
  • Question 27
  • Question 28
  • Question 29
  • Question 30
  • Question 31
  • Question 32
  • Question 33
  • Question 34
  • Question 35
  • Question 36
  • Question 37
  • Question 38
  • Question 39
  • Question 40
  • Question 41
  • Question 42
  • Question 43
  • Question 44
  • Question 45
  • Question 46
  • Question 47
  • Question 48
  • Question 49
  • Question 50
  • Question 51
  • Question 52
  • Question 53
  • Question 54
  • Question 55
  • Question 56
  • Question 57
  • Question 58
  • Question 59
  • Question 60
  • Question 61
  • Question 62
  • Question 63
  • Question 64
  • Question 65
  • Question 66
  • Question 67
  • Question 68
  • Question 69
  • Question 70
  • Question 71
  • Question 72
  • Question 73
  • Question 74
  • Question 75
  • Question 76
  • Question 77
  • Question 78
  • Question 79
  • Question 80
  • Question 81
  • Question 82
  • Question 83
  • Question 84
  • Question 85
  • Question 86
  • Question 87
  • Question 88
  • Question 89
  • Question 90
  • Question 91
  • Question 92
  • Question 93
  • Question 94
  • Question 95
  • Question 96
  • Question 97
  • Question 98
  • Question 99
  • Question 100
  • Epilogue
Powered by GitBook
On this page
  • Question
  • Answer

Question 50

Question

Can you explain how to create a regular expression that matches a valid IP address?

Answer

Here's a breakdown of creating a regular expression (regex) for validating IP addresses in JavaScript, along with explanations and considerations:

Regular Expression:

const ipRegex = /^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/;

Explanation:

  • ^ and $: Match the beginning and end of the string, ensuring the entire input is an IP address.

  • (?:...): Non-capturing groups – used to group parts of the regex without creating separate capture groups. This keeps things clean and readable.

  • (?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.: Matches a single byte of an IP address (0-255):

    • 25[0-5]: Matches 250 to 255.

    • 2[0-4][0-9]: Matches 200 to 249.

    • [01]?[0-9][0-9]?: Matches 0 to 199, allowing for optional leading "0" or "1".

    • \.: Matches a literal period (.), separating the bytes.

  • {3}: Repeats the preceding group (a byte and period) three times, ensuring there are four bytes in total.

  • (?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$: Matches the final byte of the IP address, using the same pattern as before.

Usage Example:

const ipAddress = "192.168.1.1";

if (ipRegex.test(ipAddress)) {
  console.log("Valid IP address");
} else {
  console.log("Invalid IP address");
}

Important Notes:

  • This regex only validates the format of an IP address. It doesn't check if the address is actually reachable or assigned to a device.

  • For more complex validation needs (e.g., IPv6, network ranges), you might need a more sophisticated regex or consider using a dedicated library.

PreviousQuestion 49NextQuestion 51

Last updated 9 months ago