分成句子并用标签包装

时间:2013-07-19 23:17:10

标签: javascript regex nlp

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

我目前要做的是编写一个正则表达式来查找所有句号,问号和换行符,然后将字符串拆分为包含所有单词的各种字符串,包括每个句号。< / p>

然后我将用<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标签包装每个字符串?

1 个答案:

答案 0 :(得分: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
    });