我试图在angular6中实现这样的目标:
https://jsfiddle.net/o8xufvyj/2/
替换字符串中出现的所有字符的方法。
{{string.replace(/-/g, ' ')}}在Angular6中不起作用。在不多次使用angular6的情况下,如何在.replace中实现这样的工作呢?
发布于 2018-09-18 08:13:20
您的代码不能工作的原因是角试图从它的当前作用域(例如控制器)解析您在“{ }}”之间放置的任何内容。但是,您的作用域没有类似于"string.replace“的任何内容,因此它无法解析该值。
一个解决方案就是在控制器中放置一个函数,修改给定的字符串,并返回它,然后在HTML中使用该函数。
public replace(content: string) {
return content.replace(/-/g, " ");
}然后在HTML中:
{{replace("content-to-be-modified")}}发布于 2018-09-18 08:15:46
管道是可重用的,因此您可以创建一个管道来替换基于regex值的字符串值,如下所示
更换管
@Pipe({
name: 'replace'
})
export class ReplacePipe implements PipeTransform {
transform(value: string, regexValue: string, replaceValue: string): any {
let regex = new RegExp(regexValue, 'g');
return value.replace(regex, replaceValue);
}
}模板
<p> {{stringText | replace:' ':'--'}}</p>
<p> {{stringText | replace:'[a-z]':'--'}}</p>
<p> {{stringText | replace:'[A-Z]':'--'}}</p>
<p> {{stringText | replace:'[a-zA-z]?':'**'}}</p>发布于 2018-09-18 08:04:56
将结果分配给公共变量。
组件
getFormatText(文本){返回text.replace(/-/g,‘');}
模板
{{getFormatText(文本)}}
https://stackoverflow.com/questions/52381713
复制相似问题