Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript] Wyrażenie regularne i ograniczenie ilości znaków
Forum PHP.pl > Forum > Przedszkole
!*!
Kod
function strtolower(str) {var nStr = (str.value+'').replace(/[^a-zA-Z0-9\_]/g, '');str.value = nStr.toLowerCase();}


Chciałbym aby znak "_" był możliwy to powtórzenia tylko raz, tzn. aby nie możnabyło wstawić dwa razy tego samego znaku obok siebie.

próbowałem tak:

Kod
function strtolower(str) {var nStr = (str.value+'').replace(/[^a-zA-Z0-9\_{1}]/g, '');str.value = nStr.toLowerCase();}


Jednak coś za bardzo ten motyw nie załapał.
Pawel_W
jak nie można 2 obok siebie to zrób po prostu replace __ na _ winksmiley.jpg i tak pętlą while aż zostanie tylko 1 _
!*!
Ale na pewno można w JS umieścić jakiś ogranicznyk w tym co jest, bez potrzeby pisania koljenej funkcji winksmiley.jpg
kamil4u
[JAVASCRIPT] pobierz, plaintext
  1. replace(/[_]{2,}/g, ''); //ew. [\_]
[JAVASCRIPT] pobierz, plaintext
lub

Rozumiem, że dane wprowadzane są np. przez input-a? Można wtedy zamieniać dane zaraz przy ich wpisywaniu - tzn. każdą literkę z osobna - spr. czy ostatnia to przypadkiem nie '_', a jeśli tak to nie pozwalasz wpisać użytkownikowi tego znaku.
golaod
A może jakoś tak bo z tego co zrozumiałem to chciałbyś dla każdego znaku tak ?:
Kod
replace( /(.)(?:\1{1,})/g, '$1' );


Nie wiem czy dobrze ale chyba tak tongue.gif
zegarek84
Cytat(Pawel_W @ 20.08.2009, 13:10:47 ) *
jak nie można 2 obok siebie to zrób po prostu replace __ na _ winksmiley.jpg i tak pętlą while aż zostanie tylko 1 _

[to com wcześniej napisałem nie ważne - nie zauważyłem że chciałeś oprócz tych znaków ^^]

spróbuj takiego wyrażenia w pasku adresów - wynik będzie taki jaki chciałeś winksmiley.jpg:
Kod
java script:a='fdass__g_____c'.replace(/(_){2,}|[^a-zA-Z0-9_]/g, '$1');alert(a);void(0)

[EDIT] - JAVASCRIPT MA BYĆ RAZEM - NIE WIEM CZEMU ROZDZIELA ;P
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.