比方说,我得到了一个带有特殊字符的字符串,我想使用过滤器/管道对其进行更改。每个单词的首字母也应大写。
例如"@!₪ test stri&!ng₪"
将变为"Test String"
。
那怎么办?
答案 0 :(得分:3)
您可以按以下方式使用管道
import { Pipe, PipeTransform } from '@angular/core';
@Pipe({
name: 'specialPipe'
})
export class specialPipe implements PipeTransform {
transform(value: string): string {
let newVal = value.replace(/[^\w\s]/gi, '')
return newVal.charAt(1).toUpperCase() + newVal.slice(2);
}
}
答案 1 :(得分:0)
通过网站Regex101
使用例如: 您要拆分或删除自定义字符串:'@!₪test stri&!ng₪' 在测试字符串中输入字符串
答案 2 :(得分:0)
您可以在管道中使用正则表达式以及replace
。
首先,使用
str = str.replace(/[^\w\s]/gi, "")
这将删除所有非字母字符
然后您可以使用
str = str.replace(/\b\w/g, (str) => str.toUpperCase())
这将用大写字母替换单词边界(例如空格)旁边的所有字母字符。
然后可以将其链接在一起,就像这样:
let str = "@!₪ test stri&!ng₪";
str = str.replace(/[^\w\s]/gi, "") // Remove non word characters
.trim() // Remove trailing and leadings spaces
.replace(/\b\w/g, (s) => s.toUpperCase()) // Make the first letter of each word upper case
console.log(str);