JavaScript RegExp all match
Если вы хотите получить все совпадения в RegExp:
, вы должны вызвать функцию exec
в цикле while ((match = myRe.exec(str))
Не следует указывать регулярное выражение в цикле while
оно должно быть в переменной.Это неправильно: while ((match = /([0-9]+?)/gm.exec(str)) != null)
Вам необходимо указать флаг g
и, возможно, m
.Пример: /([0-9]+?)/gm
Пример использования функции exec
в JavaScript и получения всех совпадений из RegExp
var str = "static get id() {\n return '99969076'\n} \n static get id() {\n return '888888'\n} \n static get id() {\n return '777777'\n}";
function getArray(str){
let match,
arr = [],
myRe = /static get id\(\) {\s*?return '([0-9]+?)'\s*?}/g;
while ((match = myRe.exec(str)) != null) {
arr.push(match[1]);
}
return arr.length > 0 ? arr : false;
}
console.log(getArray(str));
console.log(getArray(null));
Пример использования функции replace
в JavaScript и получения всех совпадений из RegExp
var str = "static get id() {\n return '99969076'\n} \n static get id() {\n return '888888'\n} \n static get id() {\n return '777777'\n}";
function getData(str){
let arr = [];
if (str == null) {
return false;
}
str.replace(/static get id\(\) {\s*?return '([0-9]+?)'\s*?}/g,
function(match, p1, offset, str_full){
return arr.push(p1);
});
return arr.length > 0 ? arr : false;
}
console.log(getData(str));
console.log(getData(null));
console.log(getData('fthfthfh'));
Другие примеры использования функции replace
в JavaScript
const h = "static get id() {return '99969076'}";
console.log(h.replace(/static get id\(\) {return ('[0-9]+?')}/g, '$1'));
const h = "static get id() {\n return '99969076'\n}";
console.log(h.replace(/static get id\(\) {\s*?return '([0-9]+?)'\s*?}/g, '$1'));