2009-10-11 10 views
0

J'ai un écran de maintenance CRUD avec un contrôle d'éditeur de texte personnalisé personnalisé (FCKEditor en fait) et le programme extrait le texte formaté en HTML du contrôle pour l'enregistrement dans la base de données. Cependant, une partie de nos normes est que les espaces de début et de fin doivent être supprimés du contenu avant d'être sauvegardés, donc je dois supprimer & nbsp; et <br> et tels depuis le début et la fin de la chaîne HTML.Réduire les espaces à partir du contenu HTML?

Je peux choisir de le faire du côté client (en utilisant Javascript) ou du côté serveur (en utilisant Java) Y at-il un moyen facile de le faire, en utilisant des expressions régulières ou quelque chose? Je ne sais pas combien complexe, il doit être, je dois être en mesure de retirer des choses comme:

<p><br /> &nbsp;</p> 

conservant s'il y a une sorte de texte significatif entre les deux. (L'extrait ci-dessus provient de données HTML réelles enregistrées par le testeur)

Répondre

2
/<p>(?:<br\s*\/>|&[#\w]{2,6};|[\s\n\r])*?<\/p>/g 

Cela doit correspondre à tous les paragraphes qui ne contiennent aucun «texte significatif».

Il est probablement préférable de le faire du côté serveur. Est-ce que vous ne devriez pas considérer certaines entités comme significatives?

+0

c'est-à-dire ©? – p3t0r

+0

Non seulement © ... Je dirais que la plupart des références d'entités pourraient être classées comme "texte significatif" mais je pense que le PO peut s'en charger. Si besoin est, supprimez simplement la partie centrale de la regex ("& [# \ w] {2,6}; |") ... – James

Questions connexes