preg_match nasıl kullanmalıyım

2 Cevap

Ben kontrol etmek için bir dize var ve eğer sadece sayılar ve basamaklı bir başka eylem başka bir çıkış yapmak;

$data = 123412347JB91742F;

 if(preg_match('/[A-Z1-9]/', $data )) {
  echo $data;

} 
else { 
  exit; 
}

Bu çalışıyor ama $data gibi $ ya da başka herhangi bir şey için bir şey eklemek eğer hala değerini yazdırır. Ne bu kod ile yanlış?

Edit:

$data = preg_replace('/\-/', '', '1234-1234-JB91-8742F');

if(preg_match('/^[A-Z1-9]+$/', $data )) {
    echo $data;
} else {
    exit;
}

2 Cevap

  1. Sizin regex bir rakam ya da "normal" karakteri içeren her dize maç olacak.
  2. $ Veri tırnak içinde olması gerekir.

Kodunuzu aşağıdaki gibi görünmelidir:

preg_match('/^[A-Z1-9]+$/', $data)

Eğer sıfır yanı sıra daha düşük harf karakterleri eşleştirmek istiyor musunuz? Sonra regex bu gibi görünmelidir:

preg_match('/^[A-Z0-9]+$/i', $data)

Bu seti en az bir karakter varsa düzenli ifade sadece denetler. Bunun yerine normal ifade deneyin:

/^[A-Z1-9]+$/

Çapa ^ ve $ dize başlangıcını ve sonunu işaretlemelisiniz.