IT 소스/정규 표현식

자주 사용하는 예제로 알아보는 정규 표현식 (IP 주소)

한량이야기 2023. 1. 28. 01:34
반응형

안녕하세요. 경제적, 시간적 자유를 꿈꾸는 한량입니다.

자바스크립트 정규식을 활용하여 IP 주소를 검증하는 소스입니다.

자바스크립트

function check_ipAddress() {

  var ipAddress = document.getElementById("ipAddress").value;

  var regIpAddress = /^(([1-9]?[\d]|1[\d][\d]|2[0-4][\d]|25[0-5])\.){3}([1-9]?[\d]|1[\d][\d]|2[0-4][\d]|25[0-5])$/;

  if (regIpAddress.test(ipAddress) == true) {

    alert("IP 주소가 맞습니다.");

  }

}

 

HTML

<input type="text" id="ipAddress" name="ipAddress" />

<input type="button" onclick="check_ipAddress()" value="IP 주소 확인" />

 

regIpAddress에 작성한 정규식을 알아봅시다.
^(([1-9]?[\d]|1[\d][\d]|2[0-4][\d]|25[0-5])\.){3} 
     위 정규식을 풀어보면 

  ^   ((  [1-9]          ?             [\d]    |     1 [\d] [\d]   |     2 [0-4] [\d]   |    25 [0-5] ) \. )    {3} 

시작     1~9  있어도 없어도 됨  0~9  또는   1 0~9 0~9  또는  0~4  0~9 또는 25  0~5     .    3번 반복
([1-9]?[\d]|1[\d][\d]|2[0-4][\d]|25[0-5])$ : 위 정규식 풀이와 같지만 $ 붙으므로 해당 정규식으로 끝나야 합니다.

 

위 조건을 만족하면 regIpAddress.test(ipAddress)를 통과하여 true라는 값을 반환하여 alert를 보여 줍니다.

 

regIpAddress에 작성한 정규식의 다른 표현

var regIpAddress = /^((25[0-5]|2[0-4][\d]|[01]?[\d][\d]?)\.){3}(25[0-5]|2[0-4][\d]|[01]?[\d][\d]?)$/;

var regIpAddress = /^(([\d]|[1-9][\d]|1[\d]{2}|2[0-4][\d]|25[0-5])\.){3}([\d]|[1-9][\d]|1[\d]{2}|2[0-4][\d]|25[0-5])$/;

 

아래 사이트는 정규식을 테스트 할 수 있는 사이트입니다.

https://regexr.com/

 

RegExr: Learn, Build, & Test RegEx

RegExr is an online tool to learn, build, & test Regular Expressions (RegEx / RegExp).

regexr.com

 

반응형