Javascript 分成几个句子,用标签包装

Javascript 分成几个句子,用标签包装,javascript,regex,nlp,Javascript,Regex,Nlp,我正在尝试构建一个文本修复页面,用于规范所有大写字母、小写字母或两者的非语法混合书写的文本 我目前正在尝试的是编写一个正则表达式来查找所有的句号、问号和换行符,然后将字符串拆分为包含每个句号之前的所有单词的各种字符串 然后我将用标记将它们包装起来,并使用CSS:第一个字母和文本转换:大写将每个句子的第一个字母大写 最后一个阶段是编写字典函数,以查找用户指定的大写单词 这个问题只涉及编写正则表达式并拆分为字符串的部分 我尝试了太多的方法在这里发布,结果各不相同,但以下是我当前的尝试: for(va

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

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

然后我将用
标记将它们包装起来,并使用CSS
:第一个字母
文本转换:大写
将每个句子的第一个字母大写

最后一个阶段是编写字典函数,以查找用户指定的大写单词

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

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

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++;
        });
    }
}
for(var i=0;i);
var smalltext=keeplinebreaks.toLowerCase();
//在我指定的每个字符处拆分
var breakitup=smalltext.split(/[/.?\r\n]/g);
breakitup.forEach(函数(i){
var i;
控制台日志(i);
var packagedtogo=document.createElement('span');
packagedtogo.className='句子';
packagedtogo.innerHTML=breakitup[i];
输出.appendChild(packagedtogo);
i++;
});
}
}
它以前在正确的位置拆分,但它在标签之间的输出区域打印
未定义的
。我已经干了好几天了,有人能帮我一下吗


如何将一个字符串拆分为多个字符串句子,然后用html标记包装每个字符串?

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

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
    });

您为什么在
forEach
内部执行
var i
i++
?这似乎就是问题所在
forEach(函数(值,索引){…})
@elclanrs老实说,我迷路了,现在真的很累。不知道要返回多远。正如我所说,这远远不是我尝试过的第一件事,如果你愿意,我会重写我管理过的最有效的一件,但它仍然不正确。嗨,谢谢你的回答,你能帮我在每个句号、问号和换行符处查找和拆分吗?这是更难的部分。@Dominic,看起来不错。这里确实有问题(/[/.?\r\n]/g)您没有逃过点和问号。(/[\.\?\r\n]/g)。参见编辑