鍍金池/ 問答/HTML/ 正則匹配括號(數(shù)量不確定),然后為每個括號增加一個索引來傳給后臺

正則匹配括號(數(shù)量不確定),然后為每個括號增加一個索引來傳給后臺

增加填空,題干部分有不確定的空,由括號來確定,左右括號轉(zhuǎn)義為 != = !。然后這個空需要傳一個key值給后臺,方便來存放該括號下的答案。
例如:abcd()efgh()ijkl()mn() 如何變?yōu)?abcd(#1)efgh(#2)ijkl(#3)mn(#4)
括號需要增加一個索引

回答
編輯回答
女流氓

鏈接描述

    var str = 'abcd()efgh()ijkl()mn()';
    var n_str = str.replace(/(\w+)\(\)/g, '$1,');
    var ary = n_str.split(',');
    var result = '';
    ary.splice(ary.length-1, 1);
    ary.forEach(function(ele, index) {
        result += ele + '(#' + (index + 1) + ')';
    });
    console.log(result);
2017年5月6日 11:18
編輯回答
刮刮樂

上面的思路都很對,在本人項目里采用了類似于第二種的方法:

     const str = 'abcd()efgh()ijkl()mn()';
     let index = 0;
     function replacer() {
       index++;
       return ['!=', index, '=!'].join(' ');
     }
     let strTrans = str.replace(/([((])(\s*)([))])/g, replacer);
     console.log(strTrans);
2017年10月3日 15:38
編輯回答
不討囍

我說個大概思路:

  1. 把abcd()efgh()ijkl()mn() 用()切,切成字符數(shù)組
  2. 再把這個字符數(shù)組循環(huán)生成(#序號),拼接成abcd(#1)efgh(#2)ijkl(#3)mn(#4)
2018年2月25日 10:12