在括号Ext JS 4.2.1之间取得成功

时间:2018-08-30 09:55:47

标签: extjs extjs4.2

下面是文本:

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

我想同时获得括号中的字符串840

3 个答案:

答案 0 :(得分:1)

它与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'));

答案 1 :(得分:0)

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

RegExp

  • \对于通常按字面意义处理的字符,表示下一个字符 是特殊的,不能从字面上解释。
  • ^ 匹配输入的开头。

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

  • \ d 匹配基本拉丁字母中的数字字符。相当于[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;}

答案 2 :(得分:0)

您可以使用正则表达式对象根据模式匹配文本:

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);
});