代码之家  ›  专栏  ›  技术社区  ›  Patrick Dapa

获取括号内的单词Ext JS 4.2.1

  •  0
  • Patrick Dapa  · 技术社区  · 6 年前

    正文如下:

    "Les quantités vendues dans Agil (84) et Generix (0) ne sont pas cohérentes". 
    

    84 0 在括号里。

    3 回复  |  直到 6 年前
        1
  •  1
  •   beso9595 Spring boots    6 年前

    这跟我有什么关系 ExtJS 不管怎样,解决办法是:

    let fn = function(str) {
        let arr = [],
            i = -1,
            start = false;
        str.split('').forEach(function(c) {
            if (c === ')') {
                start = false;
            }
            if (start) {
                if (arr[i] === undefined) {
                    arr[i] = '';
                }
                arr[i] += c;
            }
            if (c === '(') {
                start = true;
                i++;
            }
        });
        return arr;
    };
    
    console.log(fn('Les quantités vendues dans Agil (84) et Generix (1) ne sont pas cohérentes'));
        2
  •  0
  •   Narendra Jadhav sra    6 年前

    你可以用 String.prototype.match() new RegExp() 以获得所需的结果。

    • 是特别的,不能从字面上解释。
    • ^

    • + 与上一项匹配1次或多次。等价于{1,}。

    • 匹配基本拉丁字母表中的数字字符。相当于[0-9]

    • (x) 匹配x并记住匹配。这些被称为捕获括号。

    演示

    const str = "Les quantités vendues dans Agil (84) et Generix (0) ne sont pas cohérentes",
      regex = new RegExp(/\(([^d)]+)\)+/g),
      regexBracket = new RegExp(/[()]/g);
    
    let matches = str.match(regex).join('_');
    
    console.log(matches.replace(regexBracket,'').split('_'));
    .as-console-wrapper {max-height: 100% !important;top: 0;}
        3
  •  0
  •   Zhorov    6 年前

    Ext.onReady(function(){
        var 
            exp = new RegExp(/\(([^)]+)\)/, 'g'),
            matches,
            numbers = Array();
        while ((matches = exp.exec("Les quantités vendues dans Agil (84) et Generix (0) ne sont pas cohérentes.")) != null) {
            numbers.push(matches[0]);
        }
        console.log(numbers);
    });