【发布时间】:2013-07-19 23:17:09
【问题描述】:
我正在尝试构建一个文本修复页面,用于规范以所有大写字母、所有小写字母或两者的不合语法混合形式编写的文本。
我目前正在尝试做的是编写一个正则表达式来查找所有句号、问号和换行符,然后将字符串拆分为各种字符串,其中包含直到并包括每个句号的所有单词。
然后我将用<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标签包裹每个字符串?
【问题讨论】:
-
你为什么要在
forEach中使用var i和i++?这似乎是问题所在...forEach(function(value, index){...}) -
@elclanrs 老实说我迷路了,此刻真的很累。不知道
Ctrl+Z回了多远。正如我所说,这远不是我尝试过的第一件事,如果你愿意,我会重写我管理过的最好的工作,但它仍然不正确。
标签: javascript regex nlp