我有一个大写管道。几乎所有的字符都是大写的。土耳其语的"i"字符被正确地转换为"I"。但是,当"i"字符应该转换为""字符时,它被转换为"I"。
- 示例1**:rmak =〉伊尔马克(正确)。
- 示例2**:ismail =〉Ismail(不正确,应为smail)。
我的代码如下:
import { Pipe, PipeTransform } from '@angular/core';
@Pipe({name: 'capitalize'})
export class CapitalizePipe implements PipeTransform {
transform(value: string, args: string[]): any {
if (!value) return value;
return value.replace(/[çğıöşüa-zA-z]\S*/g, function(txt) {
return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();
});
}
}
1条答案
按热度按时间x8diyxa71#
1.首先,创建一个新文件,并将其命名为“titlecase-turkish.pipe.ts”。
1.打开该文件并添加以下代码:
1.以上代码实现了TitleCaseTurkishPipe的基本功能。它按空格拆分传入的字符串值,并将每个单词的第一个字母转换为大写,同时将所有其他字母转换为小写。为了正确地将土耳其语字符大写,使用了toLocaleLowerCase()和toLocaleUpperCase()方法。
1.要使用TitleCaseTurkishPipe,首先需要在AppModule中声明它。为此,请添加以下代码:
1.现在可以在HTML文件中使用TitleCaseTurkishPipe。例如,以下代码使用TitleCaseTurkishPipe设置“name”变量值的格式: