【问题标题】:javascript split textjavascript分割文本
【发布时间】:2011-10-17 19:38:58
【问题描述】:

嗨,我想知道是否有人可以帮助我我想将一段文本拆分成句子,然后将句子拆分成单词,我已经设法逐句拆分文本,但我不知道如何拆分句子成词。我知道如果你用空格替换 "input.text.split('\r?\n')" 括号值,它会将文本逐字拆分,但我希望它首先逐句拆分文本,然后逐词拆分通过单词,以便我可以添加自定义样式。代码如下,在此先感谢。 p.s 每个句子都有一个换行符。

    <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“&lt;p&gt;”添加到每个句子中,数据格式是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"
        })

【问题讨论】:

    标签: javascript html parsing split subtitle


    【解决方案1】:

    您可以只使用split(' '),假设您的句子使用空格分隔的单词来检索单个单词。

    【讨论】:

    • 嗨,我知道如果我添加空格,它会将文本拆分为每个空格,但我想先将它拆分为每个喜欢的中断,然后再按空格。
    【解决方案2】:

    我已经重构了你的函数,希望对你有所帮助。查看下面的链接。

    http://jsfiddle.net/Rdz3s/

    【讨论】:

      【解决方案3】:
      <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
      

      【讨论】:

      • 您好,感谢您提供的代码,只是想知道您将如何使用我上面的代码来实现它。
      • 嗨,感谢您的代码,非常感谢,但只有一个问题,在拆分后如何在拆分后的句子中添加“

        ”句子逐字逐句。使用我拥有的当前代码,我可以在整个文本周围添加 html 类,但不能逐句添加。
      • 嗨,谢谢,问题几乎解决了,问题是现在它给了我输出 " m="14368 "> 然后它给了我 html 。代码输出 " m="23860">

        مَٰلِكِ

      • 嗨,我想知道如何从 js 输出中删除 " m="23860"> 。
      • @user5601 不知道它是否适合你。正则表达式控制减慢了代码的速度。 subtitle 和 split 函数都可以重构。
      猜你喜欢
      • 1970-01-01
      • 2020-05-27
      • 1970-01-01
      • 1970-01-01
      • 2014-06-21
      • 2014-04-06
      • 2012-12-09
      • 2011-11-01
      • 2013-10-20
      相关资源
      最近更新 更多