获取括号之间的单词 Ext JS 4.2.1
Get Words Between Brackets Ext JS 4.2.1
正文如下:
"Les quantités vendues dans Agil (84) et Generix (0) ne sont pas cohérentes".
我想同时获取括号中的字符串 84
和 0
。
和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'));
您可以使用 String.prototype.match()
and new 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;}
您可以使用正则表达式对象根据模式匹配文本:
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);
});
正文如下:
"Les quantités vendues dans Agil (84) et Generix (0) ne sont pas cohérentes".
我想同时获取括号中的字符串 84
和 0
。
和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'));
您可以使用 String.prototype.match()
and new 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;}
您可以使用正则表达式对象根据模式匹配文本:
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);
});