私はこのような関数を使用します。これは、文字列全体を最初に小文字に変換するオプションの2番目のパラメータをとります。その理由は、一連のTitle Case Items. That You Wish
があり、一連の文になる場合はTitle case items. That you wish
になることがあるためです。
function sentenceCase(input, lowercaseBefore) {
input = (input === undefined || input === null) ? '' : input;
if (lowercaseBefore) { input = input.toLowerCase(); }
return input.toString().replace(/(^|\. *)([a-z])/g, function(match, separator, char) {
return separator + char.toUpperCase();
});
}
1st Capturing Group (^|\. *)
1st Alternative^
^asserts position at start of the string
2nd Alternative \. *
\. matches the character `.` literally (case sensitive)
* matches the character ` ` literally (case sensitive)
* Quantifier — Matches between zero and unlimited times, as many times as possible, giving back as needed (greedy)
2nd Capturing Group ([a-z])
Match a single character present in the list below [a-z]
a-z a single character in the range between a (ASCII 97) and z (ASCII 122) (case sensitive)
を次のように正規表現が働くあなたはそうのようなあなたの例ではそれを実装します:
var str = 'this is a text. hello world!';
str = sentenceCase(str);
document.write(str); // This is a text. Hello world!
例jsfiddle
PS。将来的には、私はregex101を理解し、正規表現の
[JavaScriptでケースを宣告した文字列を変換]の可能複製(http://stackoverflow.com/questions/19089442/convert-string-to-sentence-case-in-javascript) – Fiddles
は、HTTPを参照してください。 //stackoverflow.com/q/37457557/405180 – Fiddles