如何在Angular2中制作带正则表达式的管道?

时间:2017-03-08 14:32:28

标签: javascript regex angular angular2-pipe

我尝试制作一个与输入文本匹配的管道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

如果没有,请保持原样。

1 个答案:

答案 0 :(得分: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以及它如何专门用于您的情况,但我希望它有所帮助。