PHP Düzenli İfade.

6 Cevap php

PHP, bir String sadece harf varsa nasıl kontrol edebilirim? Ben (beyaz boşluk, sayı, sembol) veya a-z ve A-Z dışında başka bir şey varsa return false bir if deyimi yazmak istiyorum.

Benim dize SADECE harf içermelidir.

Ben bu şekilde yapabileceğimi düşündüm, ama ben yanlış yapıyorum:

if( ereg("[a-zA-Z]+", $myString))
   return true;
else
   return false;

myString sadece harfler varsa nasıl öğrenebilirim?

6 Cevap

ereg duydum, ama altdizgelerin üzerinde maç olacağını tahmin ediyorum asla.

Bu durumda, bütün dize bir maç zorlamak için böylece işleçleri iki ucunda çapa dahil etmek istiyoruz:

"^[a-zA-Z]+$"

Ayrıca, okumak için işlevini basitleştirmek olabilir

return ereg("^[a-zA-Z]+$", $myString);

Çünkü if boolean gereksiz olduğunu zaten ne gelen false true dönmek veya.


Alternatif olarak, not bir mektup ve sonuç tamamlayıcı dönüş herhangi bir karakterin üzerinde maç olabilir:

return !ereg("[^a-zA-Z]", $myString);

Bunu tersine çevirir karakter seti, başında ^ Not. Ayrıca tek bir "kötü" karakter bir maç neden olacak gibi artık, ondan sonra + gerektiğini unutmayın.


Sorunuza bir Java etiketi var çünkü ... Son olarak bu tavsiye Java içindir. Ama $ $myString Eğer, belki Perl ve PHP ile uğraşıyoruz gibi görünmesini sağlar? Bazı açıklama yardımcı olabilir.

Evet bu iyi çalışır. Teşekkürler

if(myString.matches("^[a-zA-Z]+$"))

Sizin kod PHP gibi görünüyor. Dize içinde bir mektup var eğer true dönecekti. Yapmak emin dize only harfleri başlangıç ​​ve bitiş kullanmak gerekir vardır anchors:

Java Eğer String sınıfının matches yöntemi yararlanabilir içinde:

boolean hasOnlyLetters(String str) {
   return str.matches("^[a-zA-Z]+$");
}

PHP fonksiyonunda ereg deprecated şimdi. Eğer değiştirilmesi gibi preg_match kullanmanız gerekir. Yukarıdaki fonksiyonun PHP eşdeğerdir:

function hasOnlyLetters($str) {
   return preg_match('/^[a-z]+$/i',$str);
}

Alternatif olarak, bu harften başka bir şey varsa kontrol deneyin: [^ A-Za-z]

Yapmak için en kolay yolu, bir "verilen bir tür TÜM karakterler" herhangi bir karakter türü değil olup olmadığını kontrol etmektir.

\ W olmayan bir karakter gösterir Yani eğer, o zaman sadece onlardan biri için kontrol edin.