0
デフォルトの角型大文字パイプは、アポストロフィの後に単語を大文字にします。どのように解決することができますか?また、一部の単語を選択的に大文字にしない方法もありますか?アポストロフィの後に大文字を使用しない場合の大文字小文字の区別
デフォルトの角型大文字パイプは、アポストロフィの後に単語を大文字にします。どのように解決することができますか?また、一部の単語を選択的に大文字にしない方法もありますか?アポストロフィの後に大文字を使用しない場合の大文字小文字の区別
これを処理するカスタムパイプがあります。
import { Pipe, PipeTransform } from '@angular/core';
@Pipe({
name: 'customTitleCase'
})
export class CustomTitleCasePipe implements PipeTransform {
transform(value: string, args?: any): any {
if (!value) return null;
let words = value.split(" ");
for (var index = 0; index < words.length; index++) {
var word = words[index];
if (index > 0 && this.isPreposition(word)) {
words[index] = word.toLowerCase();
}
else {
words[index] = this.toTitleCase(word);
}
}
return words.join(" ");
}
private toTitleCase(word: string): string {
return word.substr(0, 1).toUpperCase() + word.substr(1).toLowerCase();
}
private isPreposition(word: string): boolean {
let lowerCaseWords = ["a","an","of", "the"]; // add more words to exclude here
return lowerCaseWords.includes(word.toLowerCase());
}
}