8
votes

jQuery retirer la nouvelle ligne puis envelopper les textnodes avec élément de bloc

J'ai des paragraphes comme celui-ci:

"C'est le premier par. r \ r \ n \ n ceci est le second avec beaucoup de nouvelle ligne Après \ n \ n \ n \ n \ n \ n et le dernier par. \ n \ r \ r "

Je veux supprimer les nouvelles lignes et envelopper chaque paragraphe avec la balise

. Je m'attends à une sortie comme suit: xxx


3 commentaires

Est-ce réellement ce dont vous avez besoin ou seulement un exemple? Je veux dire qu'il y aura plus de pauses de ligne, etc. ... tout ce qui casse la ligne doit être converti en

ou ?


C'est un exemple, il pourrait y avoir des pauses plus ou moins de la ligne. Tout ce qui ressemble à un paragraphe sera converti en


\ R et d'autres caractères de contrôle doivent être ignorés dans HTML. Ils sont valables dans des chaînes (si elles sont échappées)


4 Réponses :


11
votes
$d = "paragraph 1\r\nparagraph 2\r\n\r\n\r\nparagraph3";
echo "<p>".preg_replace('/[\r\n]+/','</p><p>',$d)."</p>";

7 commentaires

Je pense que cela ne fonctionnerait pas correctement les freins de la ligne commencent par «R \` car il faudrait le premier R dans le cadre du texte, ai-je raison?


@Trufa: le [\ r \ n] signifie une nouvelle ligne ou un nouveau retour de chariot, le suivant + sens répété 1 fois plus. Cela gérerait l'une quelconque des commandes, une succession. (E.G. \ r \ n \ r \ n \ n `\ n \ r \ n` etc.)


@Trufa: Pourquoi cela s'en soucierait-il? "R" n'est pas un caractère de retour de chariot, cela fait partie de la chaîne. Et si le mot s'est terminé dans R, par exemple. Harder \ R \ N \ R \ NFaster \ r \ NStronger


@RunRunForest and @brad mon mauvais aux deux, c'était stupide de moi! Comme Brad explique mon exemple n'est pas valide car r \\ n'est pas un caractère de retour de chariot que je suis confus par l'exemple de l'op depuis son affichage r \ r \ n \ n mais c'est en fait une "faute de frappe" ou une erreur, alors Brad et Runrun, mon mal! BTW @RUNRUN ÊTRE VOUS CONCLACTER Ceci devrait être corrigé?


Et si var d = "" ou "\ n \ n \ n" ?


@SLN: pensez à cela, voir la réponse mise à jour. Compte également "\ r \ nfoo" et "bar \ r \ n"


@Brad - Même après sa garniture de la variable doit être vérifiée de longueur, sinon "" se transforme en "

". Les conditions de limites et la coupe peuvent toutes être faites dans une seule regex / (?: [\ R \ n] *) (. +) (?: [\ R \ n] *) /



1
votes

Vous pouvez essayer quelque chose comme ceci: xxx


0 commentaires

2
votes

Que diriez-vous de cela? XXX

Ceci crée une sélection JQuery contenant les éléments P .


0 commentaires

1
votes

Remplacez Regex: / (?: [\ r \ n] *) (. +) (?: [\ r \ n] *) /
Avec:

1 $
Contexte: Global

en Perl son: s / (?: [\ r \ n] *) (. +) (?: [\ r \ n] *) /

1 $ <\ / p> / xg


0 commentaires