2012-11-18 4 views
0

www 규칙이 정상적으로 작동하면 내 URL 유효성 검사 정규식이 1보다 많을 수 있습니다. . 왜, 어떻게 해결할 수 있습니까? 그리고 내 정규식정규식에서 1을 초과하는 이유는 무엇입니까

function isurl($this_url) 
{ 
     if(preg_match("/^((http|https):\/{2})+([w]{3})+([\.]{1})+([a-zA-Z0-9-]+)+([\.]{1})+((a[cdefgilmnoqrstuwxz]|aero|arpa)|(b[abdefghijmnorstvwyz]|biz)|(c[acdfghiklmnorsuvxyz]|cat|com|coop)|d[ejkmoz]|(e[ceghrstu]|edu)|f[ijkmor]|(g[abdefghilmnpqrstuwy]|gov)|h[kmnrtu]|(i[delmnoqrst]|info|int)|(j[emop]|jobs)|k[eghimnprwyz]|l[abcikrstuvy]|(m[acdghklmnopqrstuvwxyz]|mil|mobi|museum)|(n[acefgilopruz]|name|net)|(om|org)|(p[aefghklmnrstwy]|pro)|qa|r[eouw]|s[abcdeghijklmnortvyz]|(t[cdfghjklmnoprtvwz]|travel)|u[agkmsyz]|v[aceginu]|w[fs]|y[etu]|z[amw])$/i", $this_url)) 
      { 
      return true; 
      } 

} 


$this_url = "http://www..domain.com"; 

if (isurl($this_url)) 
{echo "Success";} 
else 
{echo "Fail";} 
+1

당신이 원하는 행동이 무엇인지를 설명하고 또한 당신의 정규식이하려고하는 것을 설명 할 수 있다면 ** 정말 ** 도움이 될 것입니다. – Lix

답변

1

([\.]{1})+에서 +을 제거하십시오. +은 하나 이상을 의미합니다. 이것을 시도하십시오

([\.]{1}) 
4

에 의견을 주시기 바랍니다 "([.] {1}) +"

더하기 기호가 "한 번 또는 그 이상"을 의미한다.

4

([\.]{1})+(.){1 or more times}으로 평가됩니다. 정규식에서 +는 이 아니며입니다.

+0

그래서 거기에있는 모든 + 기호를 제거해야합니까? – Norman

+0

@ 노먼 예, 할 수 있습니다. 그리고 당신이 그것에있는 동안, 모든'{1} '도 제거하십시오. 그들은 과다하다. –

+0

오른쪽. 감사. 그것을했다. 이제 멋지게 작동합니다. – Norman

관련 문제