从斜角字符串中删除特殊字符

时间:2018-10-06 07:46:40

标签: javascript angular typescript pipe

比方说,我得到了一个带有特殊字符的字符串,我想使用过滤器/管道对其进行更改。每个单词的首字母也应大写。

例如"@!₪ test stri&!ng₪"将变为"Test String"

那怎么办?

3 个答案:

答案 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);
  }

}

DEMO STACKBLITZ

答案 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);