【问题标题】:How to make a Pipe with Regex in Angular2?如何在 Angular2 中使用正则表达式制作管道?
【发布时间】:2017-07-29 04:24:57
【问题描述】:

我正在尝试制作一个将输入文本与Regex 匹配的管道,然后显示逻辑。如果没有找到,它不应该做任何事情。

所以,Regex 应该匹配 (m) 或多个:(n) (2) (abc),然后显示逻辑。假设“关键字”是:

(m) (n) (2) (abc) - 只有这些,而不是 a-zA-Z

到目前为止我所做的:

import {Pipe, PipeTransform} from '@angular/core';

@Pipe({name:'regMatch'})
export class RegMatch implements PipeTransform {
    transform(value: string, arg?: any): any {
      //CODE HERE  
    }
}

我该怎么做?

谢谢。

编辑:如果找到匹配项,则应使用 Popover 显示图像: https://github.com/pleerock/ng2-popover

如果没有,请保持原样。

【问题讨论】:

  • 你能解释一下显示逻辑是什么意思吗?另外,添加预期的输出。
  • 等一下,我来编辑。
  • 你去伙计,编辑。 :)

标签: javascript regex angular angular2-pipe


【解决方案1】:

首先我必须说我对angular2-pipe一无所知。

但是,如果您只是在寻找一种 JS 方法来循环匹配以处理它们,您可以使用这个正则表达式:\((.+?)\) (example)。

这可以像下面这样使用:

var targetText = "(word1) other words (word2)";
var reg = new RegExp(/\((.+?)\)/);   
var result;
while((result = reg.exec(targetText)) !== null) {
    var matchedContents = result[1]; //this will be the inside of each set of ()
    console.log(matchedContents);
    //Outputs:
    //word1
    //word2
    //DO Something...
}

再次,我不确定 Pipes 以及它如何专门用于您的案例,但我希望它有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-08
    • 2018-10-26
    • 2011-10-30
    • 2018-03-21
    • 2021-09-03
    相关资源
    最近更新 更多