Javascript 在Angular2上使用正则表达式制作管道

Javascript 在Angular2上使用正则表达式制作管道,javascript,jquery,html,regex,angular,Javascript,Jquery,Html,Regex,Angular,我已经在这里问过类似的问题: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 { transfor

我已经在这里问过类似的问题: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)
或类似内容,然后让我们说
粗体
匹配
$('div.poll').text()

您正在使用不包含
/g
(全局修饰符)的正则表达式运行循环。这意味着,每次正则表达式找到匹配项时,
lastIndex
属性将不会更改,并且在下一次迭代中,将找到相同的匹配项,依此类推,从而导致无限循环

见:

lastIndex
开始下一次匹配的索引。当“g”不存在时,它将保持为0

使用


它将匹配所有出现的
),然后是除
)以外的1+字符
,然后是

let reg=/\(.+?)\/
let matched:any=res
let reg=/\([^)]+)\/g-使用
/g
匹配多个事件并使RegExp提前其索引。伙计们,错误仅在循环中。它可以控制浏览器..而且你不需要进行while循环<代码>让匹配:any=str.match(/[^()]*(?=\)/g)
,希望所有括号都正确闭合,深度为1。这正是我需要的!谢谢
let reg = /\([^)]+\)/g;