Potrzebuję wyrażeń regularnych, aby dopasować ciągi znaków zawierające litery, cyfry, spacje i niektóre proste znaki interpunkcyjne (.,!"'/$
). Mam ^[A-Za-z0-9 _]*[A-Za-z0-9][A-Za-z0-9 _]*$
i działa dobrze dla alfanumerycznych i spacji, ale nie dla interpunkcji. Pomoc jest bardzo cenna.Wyrażenie regularne odpowiadające ciągom znaków alfanumerycznym, spacje i znaki interpunkcyjne
Odpowiedz
Wystarczy dodać znaki interpunkcyjne i inne znaki wewnątrz klas (w nawiasie kwadratowym):
[A-Za-z0-9 _.,!"'/$]*
Dopasowuje każdy ciąg zawierający spacje, _, alfanumeryczne, przecinki,, ", $ ... płatna Uwaga dodając kilka znaków specjalnych, być może trzeba je uciec: more info here
Jak dopasować to do .test()? – ac360
Masz na myśli to (przed nami JavaScript)? var rgx =/[A-Za-z0-9 _.,! "'/ $] * /; rgx.test (" testme "); Lub coś takiego:/[A-Za-z0-9 _., ! "'/ $] * /. test (" testme ") – CaNNaDaRk
Właśnie wypróbowałem ten var r =/[A-Za-z0-9 _.,!"'/$] */ r.test (' ¬¬ '); zwraca prawdę? Czy brakuje mi czegoś – user2330270
Zakładając z regex, że co najmniej jeden znak alfanumeryczny muszą być obecne w łańcuchu, to sugeruję następujące:
/^(?=.*[A-Z0-9])[\w.,!"'\/$ ]+$/i
Zakładka: wczytanie (?=.*[A-Z0-9])
sprawdza obecność jednej litery lub cyfry ASCII; klasa znaków gniazda zawiera wszystkie alfanumeryczne znaki ASCII, w tym podkreślenie (\w
) i pozostałe znaki interpunkcyjne, o których wspomniałeś. Ukośnik musi zostać zmieniony, ponieważ jest również używany jako ogranicznik regex. Modyfikator /i
powoduje, że regex jest niewrażliwy na wielkość liter.
<script type="text/javascript">
check("hello dfdf asdjfnbusaobfdoad fsdihfishadio fhsdhf iohdhf");
function check(data){
var patren=/^[A-Za-z0-9\s]+$/;
if(!(patren.test(data))) {
alert('Input is not alphanumeric');
return false;
}
alert(data + " is good");
}
</script>
- 1. JavaScript Wyrażenie regularne Usuń spacje
- 2. Ciąg R usuwa znaki interpunkcyjne w podziale
- 3. wyrażenie regularne: wypakuj ostatnie 2 znaki
- 4. Wyrażenie regularne - rozpoczęcie i zakończenie ciągiem znaków
- 5. Wyrażenie regularne odpowiadające czasowi w formacie wojskowym (24 godziny)
- 6. Wyrażenie regularne, aby dopasować wszystkie znaki do następnego dopasowania.
- 7. Wyrażenie regularne pasujące wieloplatformowym znaki nowej linii
- 8. Wyrażenia regularne - pasujące białe znaki
- 9. Wyrażenie regularne zawierające wszystkie znaki klawiatury z wyjątkiem "~" i ","
- 10. zawaleniem spacje w ciągu znaków
- 11. Jak napisać wyrażenie rekurencyjne odpowiadające zagnieżdżonym nawiasom?
- 12. Wyrażenie regularne obciąć ciąg
- 13. regularne wyrażenie: jak wykluczyć wiele grup znaków?
- 14. Wyrażenie regularne w celu ograniczenia długości ciągu znaków
- 15. Czy istnieje wyrażenie regularne zgodne z Perl, aby przyciąć białe znaki z obu stron napisu?
- 16. Wyrażenie regularne Sanitize (PHP)
- 17. wyrażenie regularne do dodawania znaków przed i po numerach
- 18. Perl Split i wyrażenie regularne
- 19. c Wyrażenie regularne howto
- 20. Wyrażenie regularne negatywne mecz
- 21. PHP i wyrażenie regularne, aby akceptować tylko znaki greckie w formularzu
- 22. Usuń wszystkie znaki interpunkcyjne od końca łańcucha
- 23. Wyrażenie regularne Wildcard Matching
- 24. Wyrażenie regularne z a = i a;
- 25. Wyrażenie regularne dla danych z kart kredytowych
- 26. Prostsze wyrażenie regularne do analizy cytowanych ciągów znaków
- 27. Co to jest wyrażenie regularne zezwalające tylko na wielkie/małe litery (znaki alfabetyczne), kropki, spacje i myślniki?
- 28. Moje Vim zastępujące wyrażenie regularne rzuca `E488: Spadające znaki`
- 29. Jak mogę sprawdzić, czy ciąg znaków zawiera znaki i spacje, a nie tylko białe spacje?
- 30. Wyrażenie regularne pasujące tylko do liter
W jakich częściach chcesz dopasować interpunkcja? Co próbujesz? Czy macie również jakieś próbki wejściowe? – Wiseguy
Dlaczego po prostu nie dodasz znaków interpunkcyjnych (zawierających znaki) w nawiasach? – Blazemonger
Cóż, wyrażenie nie ma znaków interpunkcyjnych ... oczywiście nie może działać. Świetne źródło do nauki wyrażeń regularnych: http://www.regular-expressions.info/ –