Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] wyrażenia regularne
Forum PHP.pl > Forum > Przedszkole
Gość_gość_*
  1. <?php
  2. $text = '2007 żółw , . - !@#$%^&*( ';
  3. $text = preg_replace( '/[^a-z ą ę ó ś ł ć ń ż ź 0-9 , -]+/i', '', $text);
  4. ?>


Z wyrażeń regularnych jestem bardzo początkujący, napisałem taki kod i czy coś takiego wystarczy do usunięcia ze stringa wszystkich znaków oprócz: liter (również polskie znaki), cyfr/liczb, przecinka, kropki i myślnika? Z tego co sprawdzałem to działa dobrze, ale chcę wiedzieć czy czegoś nie sknociłem winksmiley.jpg
Kicok
1. To wyrażenie usunie ci kropkę (bo zapomniałeś dopisać ją do klasy znaków), a nie usunie spacji (bo jest ich kilka w klasie znaków), ale oprócz tego to jest dobre.

  1. <?php
  2.  
  3. $pattern = '/[^a-ząęóśłćńżź0-9,.-]+/i';
  4.  
  5. ?>
Gość
Dzięki, a w jaki sposób za pomocą preg_match można sprawdzić czy dany ciąg składa się tylko z liter, cyfr i spacji? Po długich próbach napisałem coś co na pierwszy rzut oka sprawdza jak trzeba:

  1. <?php
  2. preg_match('/^[a-z ą ć ę ł ń ó ś ź ż 0-9]+$/i', $text);
  3. ?>


Prosiłbym bardziej obeznanych w wyrażeniach reg. o opinię winksmiley.jpg
Gość
  1. <?php 
  2.  if (preg_match('/[^a-ząćęłńóśźż0-9s]/i', $text)) {
  3.  //error
  4.  }
  5.  
  6. if (!preg_match('/^[a-ząćęłńóśźż0-9s]+$/i', $text)) {
  7. //error
  8. }
  9.  
  10. ?>


Sorry za odgrzewanie tematu, ale chciałbym się dowiedzieć czy te 2 wyrażenia poprawnie sprawdzają czy tekst jest alfanumeryczny (+spacje)? Nie jestem pewien czy w każdym przypadku byłoby ok...
piotrekkr
sprawdzic mozna to np za pomoca takiego wzorca:
  1. <?php
  2. $pattern = '/^[a-ząćęłńóśźżĄĆĘŁŃÓŚŹŻ0-9 ]+$/i'
  3. ?>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.