【问题标题】:Split in to Sentences and Wrap With Tags拆分成句子并用标签换行
【发布时间】:2013-07-19 23:17:09
【问题描述】:

我正在尝试构建一个文本修复页面,用于规范以所有大写字母、所有小写字母或两者的不合语法混合形式编写的文本。

我目前正在尝试做的是编写一个正则表达式来查找所有句号、问号和换行符,然后将字符串拆分为各种字符串,其中包含直到并包括每个句号的所有单词。

然后我将用<span> 标记将它们包装起来,并使用CSS :first-lettertext-transform:capitalize; 将每个句子的第一个字母大写。

最后阶段将编写一个字典函数来查找用户指定的大写单词。

这个问题只涉及关于编写正则表达式和拆分为字符串的部分。

我尝试了太多方法在这里发布,结果各不相同,但这是我目前的尝试:

for(var i=0; i < DoIt.length; i++){ 
    DoIt[i].onclick = function(){

        var offendingtext = input.value.toString();
        var keeplinebreaks = offendingtext.replace(/\r?\n/g, '<br />');
        var smalltext = keeplinebreaks.toLowerCase();
        //split at each character I specify
        var breakitup = smalltext.split(/[/.?\r\n]/g);

        breakitup.forEach(function(i){
            var i;
            console.log(i);
            var packagedtogo = document.createElement('span');
            packagedtogo.className = 'sentence';
            packagedtogo.innerHTML = breakitup[i];
            output.appendChild(packagedtogo);
            i++;
        });
    }
}

它之前在正确的位置拆分,但它在标签之间的输出区域打印undefined。我已经在这几天了,请有人帮我一把。

如何将一个字符串拆分成多个字符串句子,然后用html标签包裹每个字符串?

【问题讨论】:

  • 你为什么要在forEach 中使用var ii++?这似乎是问题所在...forEach(function(value, index){...})
  • @elclanrs 老实说我迷路了,此刻真的很累。不知道Ctrl+Z 回了多远。正如我所说,这远不是我尝试过的第一件事,如果你愿意,我会重写我管理过的最好的工作,但它仍然不正确。

标签: javascript regex nlp


【解决方案1】:

您的拆分正则表达式很好。只是忘了转义几个字符:

var str = "SDFDSFDSF?sdf dsf sdfdsf. sdfdsfsdfdsfdsfdsfdsfsdfdsf sdf."
str.split( (/[\.\?\r\n]/g))
//["SDFDSFDSF", "sdf dsf sdfdsf", " sdfdsfsdfdsfdsfdsfdsfsdfdsf sdf", ""]

用于每个迭代功能,如下所示:

    breakitup.forEach(function(element){
        var packagedtogo = document.createElement('span');
        packagedtogo.className = 'sentence';
        packagedtogo.innerHTML = element;//breakitup is undefiend
        output.appendChild(packagedtogo);
        //No need to increase index
    });

【讨论】:

  • 您好,感谢您的回答,请您帮忙查找和拆分每个句号、问号和换行符吗?这是更难的部分。
  • @Dominic 看起来不错。你这里确实有问题 (/[/.?\r\n]/g) 你没有转义点和问号。 (/[\.\?\r\n]/g)。见编辑
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-11-12
  • 2017-04-18
  • 2013-05-09
  • 1970-01-01
  • 2011-11-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多