129 votes

Comment empêcher les sauts de ligne aux tirets dans tous les navigateurs

Nous avons le CKEditor dans notre CMS . Nos utilisateurs finaux saisiront de longs articles via ce CKEditor. Nous avons besoin d'un moyen d'empêcher les sauts de ligne aux tirets sur ces articles.

Existe-t-il un moyen d'empêcher les sauts de ligne aux tirets dans tous les navigateurs ?

Ou CKEditor a-t-il une option pour empêcher cela ?

316voto

deceze Points 200115

Vous pouvez utiliser qui est un trait d'union ininterrompu Unicode (U+2011).

HTML : ‑ ou ‑

Voir aussi : http://en.wikipedia.org/wiki/Hyphen#In_computing

4voto

Chris Happy Points 4458

Vous ne pouvez pas le faire sans modifier chaque instance HTML. Par conséquent, j'ai écrit du code JavaScript pour les remplacer :

jQuery :

 // Replace hyphens with non-breaking ones
$txt = $("#block-views-video-block h2");
$txt.text( $txt.text().replace(/-/g, '') );

JavaScript vanille :

 function nonBrHypens(id) {
    var str = document.getElementById(id).innerHTML;
    var txt = str.replace(/-/g, '');
    document.getElementById(id).innerHTML = txt;
}

3voto

Carter Points 3877

Utilisez le caractère de menuisier ⁠ ) autour du trait d'union. Cela fonctionne également dans Internet Explorer.

Corriger des tirets spécifiques...

 function fixicecream(text) {
    return text.replace(/ice-cream/g, 'ice⁠-⁠cream'));
}

Ou tout...

 function fixhyphens(text) {
    return text.replace(/(\S+)-(\S+)/g, '$1⁠-⁠$2'));
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X