пожалуйста, помогите мне,
У меня есть строка, соответствующая SQL-запросу;
let string = `SPMAMA.DOCUMENTO AS DOCUMENTO_MAMA,
NVL(SPMAMA.CARNETSALUS,SPMAMA_N.CARNETSALUS) AS CARNETSALUS_MAMA,
NVL(SPMAMA.NOMBRE1 || ' ' || SPMAMA.NOMBRE2 || ' ' || SPMAMA.APELLIDO1 || ' ' || SPMAMA.APELLIDO2,
SPMAMA_N.NOMBRE1 || ' ' || SPMAMA_N.NOMBRE2 || ' ' || SPMAMA_N.APELLIDO1 || ' ' || SPMAMA_N.APELLIDO2) AS NOMBRE_MAMA`;
и я хочу удалить псевдоним "AS NAME_ALIAS". Что-то вроде этого:
let strWithoutAlias = `SPMAMA.DOCUMENTO,
NVL(SPMAMA.CARNETSALUS,SPMAMA_N.CARNETSALUS),
NVL(SPMAMA.NOMBRE1 || ' ' || SPMAMA.NOMBRE2 || ' ' || SPMAMA.APELLIDO1 || ' ' || SPMAMA.APELLIDO2,
SPMAMA_N.NOMBRE1 || ' ' || SPMAMA_N.NOMBRE2 || ' ' || SPMAMA_N.APELLIDO1 || ' ' || SPMAMA_N.APELLIDO2)`;
Я не знаю, как использовать split и slice для этого, так как я думаю, что это будет комбинация обоих.
Это мой глупый код;
let strngSplit = `SPMAMA.DOCUMENTO AS DOCUMENTO_MAMA,
NVL(SPMAMA.CARNETSALUS,SPMAMA_N.CARNETSALUS) AS CARNETSALUS_MAMA,
NVL(SPMAMA.NOMBRE1 || ' ' || SPMAMA.NOMBRE2 || ' ' || SPMAMA.APELLIDO1 || ' ' || SPMAMA.APELLIDO2,
SPMAMA_N.NOMBRE1 || ' ' || SPMAMA_N.NOMBRE2 || ' ' || SPMAMA_N.APELLIDO1 || ' ' || SPMAMA_N.APELLIDO2) AS NOMBRE_MAMA`.replace(/\r?\n|\r/g, '').split('AS')
🤔 А знаете ли вы, что...
JavaScript можно использовать для создания ботов и автоматизации задач в браузерах с помощью Puppeteer.
Насколько я понимаю, для этого вам не нужно регулярное выражение. Вы можете напрямую использовать функцию строки replace()
и продолжить удаление указанных блоков строки из исходной строки.
Обратитесь к приведенному ниже коду для справки:
const input = `SPMAMA.DOCUMENTO AS DOCUMENTO_MAMA,
NVL(SPMAMA.CARNETSALUS,SPMAMA_N.CARNETSALUS) AS CARNETSALUS_MAMA,
NVL(SPMAMA.NOMBRE1 || ' ' || SPMAMA.NOMBRE2 || ' ' || SPMAMA.APELLIDO1 || ' ' || SPMAMA.APELLIDO2,
SPMAMA_N.NOMBRE1 || ' ' || SPMAMA_N.NOMBRE2 || ' ' || SPMAMA_N.APELLIDO1 || ' ' || SPMAMA_N.APELLIDO2) AS NOMBRE_MAMA`;
function replaceString(inputString) {
const replacements = [
'AS DOCUMENTO_MAMA',
'AS CARNETSALUS_MAMA',
'AS NOMBRE_MAMA'
];
let output = inputString;
replacements.forEach(replacement => {
output = output.replace(replacement, '');
});
return output;
}
console.info(replaceString(input));
Эта работа для меня;
let GROUPBY_CAMPOS = TODOS_CAMPOS.map((e)=> {
e = e.replace(' AS DOCUMENTO_MAMA', '')
e = e.replace(' AS CARNETSALUS_MAMA', '')
e = e.replace(' AS NOMBRE_MAMA', '')
return e.split(' AS ')[0]
})
Вы можете использовать регулярное выражение для удаления всех псевдонимов:
/\s+ - пробелы перед AS
как - КАК
\s+ - пробелы после AS
[^\s,]+ - псевдоним, означает что угодно, кроме пробелов и запятой
/ig - без учета регистра + все вхождения
const input = `SPMAMA.DOCUMENTO AS DOCUMENTO_MAMA,
NVL(SPMAMA.CARNETSALUS,SPMAMA_N.CARNETSALUS) AS CARNETSALUS_MAMA,
NVL(SPMAMA.NOMBRE1 || ' ' || SPMAMA.NOMBRE2 || ' ' || SPMAMA.APELLIDO1 || ' ' || SPMAMA.APELLIDO2,
SPMAMA_N.NOMBRE1 || ' ' || SPMAMA_N.NOMBRE2 || ' ' || SPMAMA_N.APELLIDO1 || ' ' || SPMAMA_N.APELLIDO2) AS NOMBRE_MAMA`;
const replaced = input.replace(/\s+as\s+[^\s,]+/ig, '');
console.info(replaced);