Ich habe eine Schnur wie

FIRST SENTENCE. SECOND SENTENCE.

Ich möchte die Zeichenfolge auf diese Weise in Kleinbuchstaben setzen, um den ersten Buchstaben jedes Satzes groß zu schreiben.

Beispielsweise:

string = string.toLowerCase().capitalize();

Nur der erste Satz wird großgeschrieben.

Ich habe

String.prototype.capitalize = function () {return this.charAt (0) .toUpperCase () + this.slice (1); }}

Funktion

Weiß jemand, wie man löst?

6
zsola3075457 7 Dez. 2013 im 17:25

4 Antworten

Beste Antwort

Wenn Sie nur das erste Wort jedes Satzes (nicht jedes Wort) groß schreiben möchten, verwenden Sie diese Funktion:

function applySentenceCase(str) {
    return str.replace(/.+?[\.\?\!](\s|$)/g, function (txt) {
        return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();
    });
}

JSFiddle hier

Wenn Sie die Formatierung des restlichen Satzes beibehalten und nur die ersten Buchstaben groß schreiben möchten, ändern Sie txt.substr(1).toLowerCase() in txt.substr(1)

10
HockeyJ 14 Juli 2016 im 10:53

Diese JS-Funktion wendet die Groß- und Kleinschreibung auf den Anfangssatz und alle Sätze an, die auf einen Satz folgen, der mit endet. ? !

function applySentenceCase(str) {
    var txt = str.split(/(.+?[\.\?\!](\s|$))/g);
    for (i = 0; i < (txt.length-1); i++) {
        if (txt[i].length>1){
            txt[i]=txt[i].charAt(0).toUpperCase() + txt[i].substr(1).toLowerCase();
        } else if (txt[i].length==1) {
            txt[i]=txt[i].charAt(0).toUpperCase();
        }
    }
    txt = txt.join('').replace(/\s\s/g,' ');
    return txt;
}

alert(applySentenceCase("LOREM IPSUM DOLOR SIT AMET, CONSECTETUR ADIPISCING ELIT. sed congue hendrerit risus, ac viverra magna elementum in. InTeRdUm Et MaLeSuAdA fAmEs Ac AnTe IpSuM pRiMiS iN fAuCiBuS. phasellus EST purus, COMMODO vitae IMPERDIET eget, ORNARE quis ELIT."));
1
John 10 Dez. 2018 im 14:53

Ich denke, das wird für dich funktionieren

<a style="cursor:pointer;" onclick="capitaliseFirstLetter('hey wassup baby')">asd</a>

<div type="text" id="texts"></div>

Javascript

    function capitaliseFirstLetter(string)
{
    var array = string.split(" ");
    for(i=0;i<array.length;i++){
        var n = array[i];
        var a = n.charAt(0).toUpperCase() + n.slice(1);
        alert(a);
    }

}

Besuchen Sie: http://jsfiddle.net/rVnFU/

0
kushal jain 7 Dez. 2013 im 13:51

Versuche dies

function toTitleCase(str) {
    return str.replace(/\w\S*/g, function (txt) {
        return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();
    });
}

alert(toTitleCase('FIRST SENTENCE. SECOND SENTENCE.'))

DEMO

Mit Referenz

4
Community 23 Mai 2017 im 12:01