Dizenin başında boşlukla kontrol edin

4 Cevap php

I preg_match kontrol etmek için kullanmak gerekir ki, sadece bir-z0-9. ((full stop dahil.)) kullanılmıştır. Ben bir şey değiştirmek istemiyorum. Benim sorunum, bir dizenin başında beyaz boşluk fark olmamasıdır.

Herkes bir satırda hiçbir iki tam durak olduğunu kontrol etmek için nasıl bilir Ayrıca, eğer, ben çok minnettar olacaktır.

Ben bugüne kadar ne:

("/[^a-z0-9.]+$/",$request)

Teşekkürler!

4 Cevap

Kullandığınız regex olmadan yapabilirsiniz ltrim'

if(ltrim($request) != $request) { // there was whitespace }

/^(?!.*\.{2,}.*$)[a-z0-9.]+$/

Açıklama

^          # start-of-string anchor
(?!        # begin negative look-ahead ("a position not followed by...")
  .*       # anything
  \.{2,}   # a dot, two times or more
  .*       # anything
  $        # the end of the string
)          # end negative lookahead
[a-z0-9.]+ # a-z or 0-9 or dot, multiple times
$          # end-of-string anchor

maçlar

  • "abc"
  • "abc123"
  • "abc.123"

başarısız

  • " abc"
  • "abc..123"
  • "abc!"
("/[^a-z0-9.]/",$request)

Düzenleme - Ben sorunuzu oynanırsa. Bu olmayan herhangi bir a-z0-9. karakter olup olmadığını görmek için kontrol eder.

^ Içeride [] characers olumsuzlar (anlamı değişir "Bunların dışında herhangi bir karakter")

^ [] Anlamı "dizesi uzaklaştırmak" dışında ($ olarak aynı "dize sonu" anlamına gelir)

Yani böyle bir şey gerekir:

("/^[a-z0-9.]+$/",$request)

Eğer nokta dizileri değil tek nokta dışlamak istiyorsanız biraz daha karmaşık bir şey gerekir:

preg_match('/^([a-z0-9]|(?<!\\.)\\.)+$/', $request);