如何使用javascript将每个句子的第一个字母大写

如何使用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

我想大写每个句子的第一个字母,然后用modified替换textarea的值,但我认为我的代码中存在一些问题

$( ".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());
});