【发布时间】:2017-03-09 10:45:13
【问题描述】:
我已经在这里问过类似的问题:stackoverflow.com/questions/42674096/how-to-make-a-pipe-with-regex-in-angular2/
现在,我确实从给定的答案中尝试了以下方法:
import {Pipe, PipeTransform} from '@angular/core';
@Pipe({name:'regMatch'})
export class RegMatch implements PipeTransform {
transform(value: string, arg?: any): any {
let targetMatched = $('div.poll').text();
// console.log(targetMatched );
let reg = new RegExp(/\((.+?)\)/);
let result: any;
do {
let matched:any = result;
console.log(matched);
}
while((result = reg.exec(target)) !== null)
}
}
发生的情况是,当我输入这个管道| regMatch 时,循环会导致浏览器崩溃。
我该如何解决这个问题?我怎样才能匹配(a) (b) (c) 或类似的,然后让我们说BOLD $('div.poll').text();
【问题讨论】:
-
let reg = /\((.+?)\)/; -
let matched:any = res;= result;?除此之外,我没有看到任何res,因此 res 是undefined。我也没有看到任何target,而是targetMatched -
let reg = /\(([^)]+)\)/g;- 使用/g匹配多个匹配项并使 RegExp 推进其索引。 -
伙计们,错误仅在循环中。它使浏览器崩溃..
-
而且你不需要进行while循环..
let matched:any = str.match(/[^()]*(?=\))/g),希望所有的括号都正确闭合并且深度为1。
标签: javascript jquery html regex angular