0

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

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

然后我将用<span>标签包装它们并使用 CSS:first-letter并将text-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 标签包装每个字符串?

4

1 回答 1

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
    });
于 2013-07-19T23:23:49.010 回答