разделенный текст javascript - PullRequest
       10

разделенный текст javascript

0 голосов
/ 17 октября 2011

Привет, мне было интересно, может ли кто-нибудь помочь мне, я хочу разделить блок текста на предложения, а затем разделить предложение на слова, мне удалось разделить текстовое предложение по предложению, но я не могу понять, как разделить предложения. в слова. Я знаю, если вы замените «input.text.split ('\ r? \ n')» значения скобок с пробелом, и это будет разбивать текст на слово в слово, но я хочу, чтобы сначала разделить текстовое предложение по предложению, а затем слово словом, чтобы я мог добавить пользовательские стили. Код ниже, спасибо заранее. в каждом предложении есть разрыв строки.

    <script type="text/javascript">
      var parser = {
        outputString:  '',
        subtitle: function(input) {
          var words = input.text.split('\\r?\\n');
          var duration = input.end - input.start;
          var timeStep = duration/words.length;
          for (var i=0, l=words.length; i<l; ++i) {
            var time = Math.round((input.start + i*timeStep) * 1000);
            var text = words[i];
            var safeText = text.replace('"', '\\"');
            parser.outputString += '<span class="arabic" m="'+time+'" oval="'+safeText+'">'+text+'</span>';
          } //for
          return parser;
        }, //subtitle
    }; //parser

      document.addEventListener('DOMContentLoaded', function(e) {
        var parsed = document.getElementById('parsed');
        parsed.style.width = window.innerWidth - 10 + "px";
        parsed.style.height = window.innerHeight - 10 + "px";
        parsed.value = '<div id="sura-body">' + parser.outputString + '</div>';
      }, false);
    </script>
    <script type="text/javascript" src="paneltext_da.js"></script>
      </head>
     <body>
     <textarea id="parsed"></textarea>
    </body>
    </html>

Я до сих пор не могу понять, как добавить HTML "<p>" к каждому предложению, используемому форматом данных - json. может кто-нибудь помочь. спасибо

            .subtitle({
          start: 6.057, 
          end: 9.07, 
          text: "Det er et af de vigtigste værktøjer i hverdagen.", 
          target: "subtitlediv"
        })   
        .subtitle({
          start: 9.07, 
          end: 15.02, 
          text: "Det er i browseren vi læser nyheder, ser TV, checker email, snakker med venner, shopper, booker billetter -", 
          target: "subtitlediv"
        })
        .subtitle({
          start: 15.02, 
          end: 18.08, 
          text: "Tusindvis af de ting vi efterhånden gør på nettet.", 
          target: "subtitlediv"
        })
        .subtitle({
          start: 18.081, 
          end: 23.021, 
          text: "Derfor er det også vigtigt hvilken browser vi bruger, og hvordan den virker.", 
          target: "subtitlediv"
        })

Ответы [ 3 ]

1 голос
/ 17 октября 2011

Вы можете просто использовать split(' '), предполагая, что ваше предложение использует слова, разделенные пробелом, для извлечения отдельных слов.

0 голосов
/ 22 октября 2011

Я изменил вашу функцию и надеюсь, что она вам поможет. Проверьте ссылку ниже.

http://jsfiddle.net/Rdz3s/

0 голосов
/ 18 октября 2011
<script type="text/javascript">
  var parser = {
    outputString: '',
    split: function(input) {
      var words = [];
      var sentences = input.text.split('\\r?\\n');
      sentences.forEach(function(sentence){
        words.push("<p class='sentence'>"); // tagged start of sentence
        words = words.concat(sentence.split(' '));
        words.push("</p>"); // tagged end of sentence
      });
      return words;
    },
    subtitle: function(input) {
      var words = this.split(input);
      var duration = input.end - input.start;
      var timeStep = duration/words.length;
      for (var i=0, l=words.length; i<l; ++i) {
        var text = words[i];
        if (text.search(/<\/?p/) === -1) {
          var time = Math.round((input.start + i*timeStep) * 1000);              
          var safeText = text.replace('"', '\\"');
          parser.outputString += '<span class="arabic" m="'+time+'" oval="'+safeText+'">'+text+'</span>';
        }
      } //for
      return parser;
    } //subtitle
  }; //parser
...