🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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
#51301
Author: Jan
Date: Sat, 08 Jun 2013 10:26
21 lines
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
#51302
Author: Wojtek Gapiński
Date: Sat, 08 Jun 2013 13:03
18 lines
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
#51304
Author: Piotr
Date: Sat, 08 Jun 2013 13:56
17 lines
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
#51303
Author: Jan
Date: Sat, 08 Jun 2013 14:52
11 lines
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
#51305
Author: Jan
Date: Sat, 08 Jun 2013 14:57
21 lines
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