JavaScript'te Regular Expressions Kullanımı

Kodla Büyü

halilturkoglu

Seçkin Üye
Seçkin Üye
Mesajlar
735
Merhaba arkadaşlar,

Bir site için RegEx kullanmam gerekiyor. Ama Javascript'te RegEx kullanmayı başaramadım.
Kod:
function RegEX($str,$type)
  {
  switch ($type)
    {
    case "ip": return preg_match('/^((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){3}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})$/',$str);
    case "nonspecialtext": return preg_match('/^[a-z\d_]$/i',$str); // '/^[a-z\d_]{5,20}$/i' for 5-20 chars
    case "mail": return preg_match('/^([0-9a-zA-Z]+([_.-]?[0-9a-zA-Z]+)*@[0-9a-zA-Z]+[0-9,a-z,A-Z,.,-]*(.){1}[a-zA-Z]{2,4})+$/',$str);
    case "tck": if(preg_match('/^[\d]{11}$/',$str))
                  {
                  $tek=substr($str,0,1)+substr($str,2,1)+substr($str,4,1)+substr($str,6,1)+substr($str,8,1);
                  $cift=substr($str,1,1)+substr($str,3,1)+substr($str,5,1)+substr($str,7,1);
                  if(substr($str,9,1)==($tek*7-$cift)%10)
                    if(substr($str,10,1)==($tek+$cift+substr($str,9,1))%10)
                      return true;
                  }
                 return false;
    case "url": return preg_match('/^(http[s]?://|ftp://)?(www\.)?[a-zA-Z0-9-\.]+\.(com|org|net|mil|edu|ca|co|com|gov)[.tr|.au|.uk|.jp|.de|.fr|.it|.ru]?$/',$str);
    case "integer": return preg_match('(?<!\S)\d++(?!\S)',$str);
    case "phone": return preg_match('\(?[0-9]{3}\)?[-. ]?[0-9]{3}[-. ]?[0-9]{4}',$str);
    }
  }

bunlar PHP için kullandığım RegEx fonksiyonu bunu javascript'e çevirmem gerekiyor. Yardımcı olabilecek olan arkadaşlara şimdiden teşekkür ederim.

Kod:
function validatevalue(elmid,method)
  {
  switch (method)
    {
    case "ip": regexstr="^((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){3}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})$"; break;
    case "nonspecialtext": regexstr="^[a-z\d_]$"; break;
    case "mail": regexstr="^([0-9a-zA-Z]+([_.-]?[0-9a-zA-Z]+)*@[0-9a-zA-Z]+[0-9,a-z,A-Z,.,-]*(.){1}[a-zA-Z]{2,4})+$"; break;
    case "tck": regexstr="^[\d]{11}$"; break;
    case "url": regexstr="^(http[s]?://|ftp://)?(www\.)?[a-zA-Z0-9-\.]+\.(com|org|net|mil|edu|ca|co|com|gov)[.tr|.au|.uk|.jp|.de|.fr|.it|.ru]?$"; break;
    case "integer": regexstr="(?<!\S)\d++(?!\S)"; break;
    case "phone": regexstr="\(?[0-9]{3}\)?[-. ]?[0-9]{3}[-. ]?[0-9]{4}"; break;
    }
  var elmv=document.getElementById(elmid).value;
  //var re = new RegExp(regexstr);
  if(!document.getElementById(elmid).value.match(regexstr))
    {
    alert("Lütfen geçerli bir değer giriniz..");
    return false;
    }
  else
    {
    if(method=="tck")
      {
      var t=elmv.substr(0,1)+elmv.substr(2,1)+elmv.substr(4,1)+elmv.substr(6,1)+elmv.substr(8,1);
      var c=elmv.substr(1,1)+elmv.substr(3,1)+elmv.substr(5,1)+elmv.substr(7,1);
      if(elmv.substr(9,1)==(t*7-c)%10)
        {
        if(elmv.substr(10,1)==(t+c+elmv.substr(9,1))%10)
          return true;
        else
          return false;
        }
      else
        return false;
      }
    return true;
    }
  }

Şu an düzenlediğim fonksiyon bu ama çalıştıramadım, sorun veriyor.
 
BBNET
Geri
Üst