首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >全球.replace Angular6

全球.replace Angular6
EN

Stack Overflow用户
提问于 2018-09-18 08:00:36
回答 4查看 1K关注 0票数 0

我试图在angular6中实现这样的目标:

https://jsfiddle.net/o8xufvyj/2/

替换字符串中出现的所有字符的方法。

代码语言:javascript
复制
{{string.replace(/-/g, ' ')}}

在Angular6中不起作用。在不多次使用angular6的情况下,如何在.replace中实现这样的工作呢?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2018-09-18 08:13:20

您的代码不能工作的原因是角试图从它的当前作用域(例如控制器)解析您在“{ }}”之间放置的任何内容。但是,您的作用域没有类似于"string.replace“的任何内容,因此它无法解析该值。

一个解决方案就是在控制器中放置一个函数,修改给定的字符串,并返回它,然后在HTML中使用该函数。

代码语言:javascript
复制
public replace(content: string) {
    return content.replace(/-/g, " ");
}

然后在HTML中:

代码语言:javascript
复制
{{replace("content-to-be-modified")}}
票数 1
EN

Stack Overflow用户

发布于 2018-09-18 08:15:46

管道是可重用的,因此您可以创建一个管道来替换基于regex值的字符串值,如下所示

更换管

代码语言:javascript
复制
@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);
  }

}

模板

代码语言:javascript
复制
<p> {{stringText | replace:' ':'--'}}</p>
<p> {{stringText | replace:'[a-z]':'--'}}</p>
<p> {{stringText | replace:'[A-Z]':'--'}}</p>
<p> {{stringText | replace:'[a-zA-z]?':'**'}}</p>

stackblitz demo

票数 3
EN

Stack Overflow用户

发布于 2018-09-18 08:04:56

将结果分配给公共变量。

组件

getFormatText(文本){返回text.replace(/-/g,‘');}

模板

{{getFormatText(文本)}}

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52381713

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档