Thread View: pl.comp.lang.javascript
5 messages
5 total messages
Started by Jan
Sat, 08 Jun 2013 10:26
Zliczanie znakow ale bez urli
Author: Jan
Date: Sat, 08 Jun 2013 10:26
Date: Sat, 08 Jun 2013 10:26
21 lines
1785 bytes
1785 bytes
Witam,
Potrzebuje zliczać znaki wprowadzone przez usera w polu textarea, ale z wyłączeniem urli.
Doszedłem do tego, co poniżej, ale taka funkcja nie zlicza mi tylko pierwszego urla, drugi już tak.
Zapewne problem jest w wyrażeniu, ale niestety nie wiem jak to rozkminić. Może jakaś porada?
function CountTxt(StrTxt, txtCount, totaltxt, e)
{
var exp = /(\b(https?):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/i;
// usuwamy do liczenia wszystkie urle zaczynajace sie na http(s)
var StrTxt2 = document.getElementById("formularz").value.replace(exp, "");
// StrTxt2.length to ilosc znakow liczona bez URLi.... StrTxt.value.length to ilosc znakow wszystich...
// ilosc znakow na URLe uzyskamy odejmujac StrTxt.value.length - StrTxt2.length
var StrURLe = StrTxt.value.length - StrTxt2.length;
if (StrTxt2.length > totaltxt) {
StrTxt.value = StrTxt.value.substring(0, totaltxt+StrURLe);}
else {
txtCount.value ='Zostało: ' + (totaltxt - StrTxt2.length) + ' znaków.';}
}
Re: Zliczanie znakow ale bez urli
Author: Wojtek Gapiński
Date: Sat, 08 Jun 2013 13:03
Date: Sat, 08 Jun 2013 13:03
18 lines
1702 bytes
1702 bytes
Dnia 08-06-2013 12:26 Jan napisał: > Witam, > > Potrzebuje zliczać znaki wprowadzone przez usera w polu textarea, ale z wyłączeniem urli. > Doszedłem do tego, co poniżej, ale taka funkcja nie zlicza mi tylko pierwszego urla, drugi już tak. > Zapewne problem jest w wyrażeniu, ale niestety nie wiem jak to rozkminić. Może jakaś porada? > A masz pewność, że user wpisując URL zrobi na końcu spację/kropkę/EOL/jakiś-inny-ustalony-znak? Bo jeśli tak, to możesz próbować najpierw podzielić cały tekst na wiersze i sprawdzać je w pętli, czy nie mają http(s) na początku. Jeśli nie, to jak chcesz wyłapać URL z czegoś takiego: http://jakas-domena.pl/jakiś-link/a tu user pisze dalej bez spacji :) -- Wojtek Gapiński http://jwmprojekt.pl
Re: Zliczanie znakow ale bez urli
Author: Piotr
Date: Sat, 08 Jun 2013 13:56
Date: Sat, 08 Jun 2013 13:56
17 lines
1306 bytes
1306 bytes
W dniu 08.06.2013 o 12:26 Jan <example@example.com> pisze:
> Witam,
>
> Potrzebuje zliczać znaki wprowadzone przez usera w polu textarea, ale z
> wyłączeniem urli.
> Doszedłem do tego, co poniżej, ale taka funkcja nie zlicza mi tylko
> pierwszego urla, drugi już tak.
> Zapewne problem jest w wyrażeniu, ale niestety nie wiem jak to
> rozkminić. Może jakaś porada?
>
> function CountTxt(StrTxt, txtCount, totaltxt, e)
> {
> var exp =
> /(\b(https?):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/i;
Dodaj do wyrażenia flagę g (obok i).
Re: Zliczanie znakow ale bez urli
Author: Jan
Date: Sat, 08 Jun 2013 14:52
Date: Sat, 08 Jun 2013 14:52
11 lines
1434 bytes
1434 bytes
Dnia Sat, 08 Jun 2013 15:03:54 +0200, Wojtek Gapiński napisał(a): > A masz pewność, że user wpisując URL zrobi na końcu > spację/kropkę/EOL/jakiś-inny-ustalony-znak? > Bo jeśli tak, to możesz próbować najpierw podzielić cały tekst na > wiersze i sprawdzać je w pętli, czy nie mają http(s) na początku. Jeśli > nie, to jak chcesz wyłapać URL z czegoś takiego: > http://jakas-domena.pl/jakiś-link/a tu user pisze dalej bez spacji :) No jeśli nie da spacji to jego problem. Tak jak napisał Piotr wystarczyło tylko dodać flagę g i działa :)
Re: Zliczanie znakow ale bez urli
Author: Jan
Date: Sat, 08 Jun 2013 14:57
Date: Sat, 08 Jun 2013 14:57
21 lines
1757 bytes
1757 bytes
Dnia Sat, 08 Jun 2013 15:56:11 +0200, Piotr napisał(a):
> W dniu 08.06.2013 o 12:26 Jan <example@example.com> pisze:
>> Potrzebuje zliczać znaki wprowadzone przez usera w polu textarea, ale z
>> wyłączeniem urli.
>> Doszedłem do tego, co poniżej, ale taka funkcja nie zlicza mi tylko
>> pierwszego urla, drugi już tak.
>> Zapewne problem jest w wyrażeniu, ale niestety nie wiem jak to
>> rozkminić. Może jakaś porada?
>>
>> function CountTxt(StrTxt, txtCount, totaltxt, e)
>> {
>> var exp =
>> /(\b(https?):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/i;
>
> Dodaj do wyrażenia flagę g (obok i).
Dzięki :) Ale idąc za ciosem to chciałbym żeby każde wystąpienie urla bez
względu na jego długość policzyć jako 4 znaki. A to już niestety wyższa
szkoła jazdy. Trzeba pewnie ustawić tablicę i tam w jakiś sposób
zapisywać każde wystąpienie http...?
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads