2011-04-27 2 views
1

Nous avons un contrôle textarea qui contient du texte et des liens hypertexte. Les liens sont stockés comme suit:Meilleure façon de compter les liens hypertexte dans textarea en utilisant le côté client Javascript?

http://www.google.com [Link to a site __title__ Title of Link] 
http://www.yahoo.com [http://www.yahoo.com __title__ Link with text & hyperlink the same] 

Dans le second lien, je ne veux pas compter yahoo deux fois, alors je veux ignorer les liens commençant par le support gauche. Je sais que l'utilisation de Regex pour faire ceci n'est pas la meilleure façon, mais je ne connais pas d'autre moyen d'accomplir cela. Jusqu'à présent, je l'ai essayé ce regex, mais je me suis dit que Javascript ne supporte pas lookbehind:

(?<!\[)((http|https|ftp)\://(www\.)?)(([a-zA-Z0-9\.-]+\.[a-zA-Z]{2,4})|([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}))(/[a-zA-Z0-9%:/_\?\.'~&=-]*) 

Quelqu'un sait d'une manière décente pour y parvenir?

Je viens de découvrir également que je ne peux pas compter sur les parenthèses. Les utilisateurs peuvent entrer n'importe quel type de lien, en utilisant notre outil qui crée les crochets ou en les saisissant eux-mêmes manuellement.

Répondre

0

Comptez le nombre du caractère [ dans le contenu de la zone de texte.
La solution ci-dessus fonctionnera si le format que vous avez mentionné ci-dessus persiste.

0

Vous avez juste besoin d'un compte? Ne pouvez-vous pas compter tous les liens, puis compter tous les liens commençant par le crochet de gauche, et soustraire?

+0

J'ai découvert que je ne peux pas compter sur les crochets - un utilisateur peut entrer manuellement ne pas utiliser notre outil, de sorte qu'il ne génère pas de support. Donc je dois vérifier les deux cas. – Rob

+0

Quel est le format lorsque l'utilisateur les saisit manuellement? S'il n'y a pas de parenthèses alors il n'y a rien à soustraire, quel serait le problème? –

Questions connexes