Κώδικας που μετατρέπει αυτόματα σε active www και mail links

Κώδικας, πληροφορίες, ερωτήσεις και απαντήσεις σχετικές με την JavaScript.

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
Άβαταρ μέλους
dimsis
Reporter
Δημοσιεύσεις: 7994
Εγγραφή: 25 Ιούλ 2001 03:00

Κώδικας που μετατρέπει αυτόματα σε active www και mail links

Δημοσίευση από dimsis » 10 Δεκ 2005 18:46

// Convert all URLs to active links
Tt = REReplaceNoCase(Tt, "([[:alnum:]]*://[[:alnum:]\@-]*(\.[[:alnum:]][[:alnum:]-]*[[:alnum:]]\.)?[[:alnum:]]{2,}(\.?[[:alnum:]\/=^@*|:~`+$%?_##&-])+)","<a href=""\1"" target=""_blank"">\1</A>", "ALL");

// Convert all email addresses to active mailto's
Tt = REReplaceNoCase(Tt, "(([[:alnum:]][-a-zA-Z0-9_%\.]*)?[[:alnum:]]@[[:alnum:]][-a-zA-Z0-9%\>.]*\.[[:alpha:]]{2,})", "<a href=""mailto:\1"" title=""email to: \1"">\1</a>", "ALL");

Το ερώτημα είναι ΠΩΣ θα μετρατρέπει σε active links μόνο όσα δεν έχουν a href="" και απλώς είναι σκέτα links του τύπου http://www.site.com
και το ίδιο για τα mail... δλδ όταν υπάρχει a href mailto να μη το αλλάζει, παρά μόνο όταν είναι "σκέτα"...

Άβαταρ μέλους
skeftomilos
Script Master
Δημοσιεύσεις: 2888
Εγγραφή: 07 Ιαν 2005 07:22
Τοποθεσία: Αθήνα

Κώδικας που μετατρέπει αυτόματα σε active www και mail links

Δημοσίευση από skeftomilos » 11 Δεκ 2005 02:17

Ο κώδικας δε μου μοιάζει για JavaScript, ειδικά το :alnum: κάτι μου θυμίζει, αλλά δε θυμάμαι σε ποια γλώσσα. :-? :)

Θέλεις να δώσεις ένα παράδειγμα; Εύκολο μοιάζει, αλλά φοβάμαι πώς δεν κατάλαβα ακριβώς το ζητούμενο. Δηλαδή ας πούμε να ψάχνει για links όπως...

Κώδικας: Επιλογή όλων

<a href="">http&#58;//www.site.com</a>
...και να τα κάνει...

Κώδικας: Επιλογή όλων

<a href="http&#58;//www.site.com">http&#58;//www.site.com</a>
Κάτι τέτοιο;
The pure and simple truth is rarely pure and never simple. Ο μη νους δε σκέπτεται μη σκέψεις για το τίποτα.

Άβαταρ μέλους
dimsis
Reporter
Δημοσιεύσεις: 7994
Εγγραφή: 25 Ιούλ 2001 03:00

Κώδικας που μετατρέπει αυτόματα σε active www και mail links

Δημοσίευση από dimsis » 11 Δεκ 2005 02:29

Ήδη το έκανα με πατέντα... έβαλα ένα if στον κώδικα του Coldfusion και λύθηκε, αλλά ας το δούμε και πάνω στην regular expression...

πες ότι βάζω σε ένα άρθρο μου το παρακάτω:
http://www.log.gr <- αυτό χωρίς εγώ να βάλω a href το freestuff το μετατρέπει ΑΥΤΟΜΑΤΑ σε active link με παρόμοιο reg expr με αυτό που πόσταρα παραπάνω....

Εγώ όμως που έχω ενεροποιημένη την HTML, μπορεί να βάλω σε ένα άρθρο και ένα link με την a href του τύπου <a href="http://www.log.gr ">Log.gr</a> όπου εδώ αν "τρέξει" ο ίδιος κώδικας δεν δουλεύει σωστά, επειδή μετατρέπει το http://www.log.gr σε active link οπότε δεν δουλεύει η a href....
Θα έπρεπε λοιπόν να μετρατρέπετε σε Active URL μόνο όποτε δεν υπήρχε στο ίδιο "string" ήδη η εντολή a href.... (αυτό τώρα έτσι όπως το έκανα το ελέγχω από τον κώδικα μου και το έλυσα, αλλά θα ήταν καλύτερο να γινόταν με reg exp)

Ελπίζω να έγινα κατανοητός...

Άβαταρ μέλους
skeftomilos
Script Master
Δημοσιεύσεις: 2888
Εγγραφή: 07 Ιαν 2005 07:22
Τοποθεσία: Αθήνα

Κώδικας που μετατρέπει αυτόματα σε active www και mail links

Δημοσίευση από skeftomilos » 11 Δεκ 2005 04:02

Ναι, κατάλαβα, γίνονται περισσότερες μετατροπές απ' όσες είναι απαραίτητες. :)

Αλλά δεν καταλαβαίνω που κολλάει η JavaScript με όλα αυτά. Μοιάζει να είναι εντελώς server-side το ζήτημα...
Άσε που από Coldfusion έχω μαύρα μεσάνυχτα! :P
The pure and simple truth is rarely pure and never simple. Ο μη νους δε σκέπτεται μη σκέψεις για το τίποτα.

Άβαταρ μέλους
dimsis
Reporter
Δημοσιεύσεις: 7994
Εγγραφή: 25 Ιούλ 2001 03:00

Κώδικας που μετατρέπει αυτόματα σε active www και mail links

Δημοσίευση από dimsis » 11 Δεκ 2005 10:38

Αν εξαιρέσεις το REReplaceNoCase, τα υπόλοιπα είναι regular expressions, όχι coldfusion... δλδ θα μπορούσε να "παίξει" οπουδήποτε

Άβαταρ μέλους
cordis
Administrator, [F|H]ounder, [C|S]EO
Δημοσιεύσεις: 27622
Εγγραφή: 09 Οκτ 1999 03:00
Τοποθεσία: Greece
Επικοινωνία:

Κώδικας που μετατρέπει αυτόματα σε active www και mail links

Δημοσίευση από cordis » 11 Δεκ 2005 12:31

νομίζω ότι αν βάλεις στο RegExp σου να μην ξεκινάει με href=" ή να ξεκινάει με space θα το έχεις λύσει το πρόβλημά σου.
Δεν απαντάω σε προσωπικά μηνύματα με ερωτήσεις που καλύπτονται από τις ενότητες του forum. Για ο,τι άλλο είμαι εδώ για εσάς.
- follow me @twitter

Απάντηση

Επιστροφή στο “JavaScript και Frameworks”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες