2016-12-15 6 views
2

J'ai une page Web réactive. Est-il possible de déplacer automatiquement les mots d'une lettre à la fin de la ligne à la ligne suivante.Déplacez une lettre des mots à la ligne suivante

Exemple:

Une image vaut
mille mots .

au lieu de:

Une image vaut mille mots
.

+0

vous devrez vérifier le contenu en ligne s'il y a 1 mots de caractère et si oui, vous placez un '\ n' avant d' – Aelop

Répondre

0

C'est possible, oui. Une façon de le faire serait avec un textContent.replace(/(\S) /g, "$1\n") et la propriété CSS white-space: pre-line. Notez que \w n'est pas un outil de correspondance approprié pour les lettres en langage naturel en JavaScript, car il ne correspond qu'aux caractères alphanumériques ASCII.

Vous pouvez également éviter les sauts de ligne-de se produire après des mots d'une lettre en remplaçant les espaces entre eux et le mot suivant avec un espace non sécable avec textContent.replace(/(\S) /g, "$1\xa0")

0

idiot, mais fonctionne. Il suffit de modifier les valeurs des mots et des éléments tableau à vos besoins

function removeSingleCharLineBreak(){ 
var words = ['a', 'i', 's', 'z', 'v', 'k', 'o', 'u', 
    'A', 'I', 'S', 'Z', 'V', 'K', 'O', 'U', '€', 
    'na', 'za', 'do', 'Na', 'Za', 'Do', 
    ]; 

var elements = ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'li', 'td', 'td']; 

$.each(words, function(index, word){ 

    var regex = new RegExp(" " + word + " ", "g"); 

    $.each(elements, function(index, element){ 

     $(element + ':contains(' + word + ')').each(function(){ 

      if (word == '€') 
      { 
       $(this).html(
        $(this).html().replace(regex, ' ' + word + ' ') 
       );  
      } 
      else 
      { 
       $(this).html(
        $(this).html().replace(regex, ' ' + word + ' ') 
       );      
      } 

     }); 

    }); 

}); 

}