如何使用javascript将每个句子的第一个字母大写
我想大写每个句子的第一个字母,然后用modified替换textarea的值,但我认为我的代码中存在一些问题如何使用javascript将每个句子的第一个字母大写,javascript,regex,Javascript,Regex,我想大写每个句子的第一个字母,然后用modified替换textarea的值,但我认为我的代码中存在一些问题 $( ".question" ).blur(function() { var question = $(this).val().match( /[^\.!\?]+[\.!\?]+/g ); question.forEach(function(entry) { entry = entry.substring(0,1).toUpperCase() + entr
$( ".question" ).blur(function() {
var question = $(this).val().match( /[^\.!\?]+[\.!\?]+/g );
question.forEach(function(entry) {
entry = entry.substring(0,1).toUpperCase() + entry.substring(1);
$('.question').val(entry)
});
});
试试这个功能
function capitalizeSentences(capText, capLock)
{
if (capLock == 1 || capLock == true)
{
capText = capText.toLowerCase();
}
capText = capText.replace(/.n/g, ".[-<br>-]. ");
capText = capText.replace(/.sn/g, ". [-<br>-]. ");
var wordSplit = '. ';
var wordArray = capText.split(wordSplit);
var numWords = wordArray.length;
for(x = 0; x < numWords; x++)
{
wordArray[x] = wordArray[x].replace(wordArray[x].charAt(0), wordArray[x].charAt(0).toUpperCase());
if (x == 0)
{
capText = wordArray[x] + ". ";
}
else if(x != numWords - 1)
{
capText = capText + wordArray[x] + ". ";
}
else if(x == numWords - 1)
{
capText = capText + wordArray[x];
}
}
capText = capText.replace(/[-<br>-].s/g, "n");
capText = capText.replace(/sis/g, " I ");
return capText;
}
我创建了一个示例来演示工作代码,但其要点是,您一次替换一个值,而不是用textarea的全部内容创建一个大值
以下是工作javascript:
$( ".question" ).blur(function() {
var question = $(this).val().match( /[^\.!\?]+[\.!\?]+/g );
var out = '';
question.forEach(function(entry) {
entry = entry.trim();
entry = entry.substring(0,1).toUpperCase() + entry.substring(1);
out += entry + ' ';
});
$('.question').val(out.trim());
});
尝试
question.each
而不是question.forEach
。如果这不起作用,你能提供一些关于你正在得到的错误/什么不起作用的详细信息吗?为什么不链接到?
$( ".question" ).blur(function() {
var question = $(this).val().match( /[^\.!\?]+[\.!\?]+/g );
var out = '';
question.forEach(function(entry) {
entry = entry.trim();
entry = entry.substring(0,1).toUpperCase() + entry.substring(1);
out += entry + ' ';
});
$('.question').val(out.trim());
});