Как игнорировать части в круглых скобках при разбиении по слову в javascript - PullRequest
0 голосов
/ 25 февраля 2020

У меня есть строка, как показано ниже.

var str = "SELECT COL1 , COL2 , (SELECT COL1 FROM TBL2 AS COL4) ,COL5 FROM TBL1 WHERE 1 = 1 ";

Я хочу разделить это словом «ОТ» и также хочу игнорировать вхождение в скобках.

Ожидаемый результат:

var arr = ['SELECT COL1 , COL2 , (SELECT COL1 FROM TBL2 AS COL4) ,COL5 ' , 'TBL1 WHERE 1 = 1'];

Эта строка является только примером. Строка является динамической c, и то, что я хочу сделать, это разделить по слову (например: ОТ), но не обращать внимания на случаи внутри круглых скобок.

Подобные вопросы были, но не объяснены для разделения по слову.

1 Ответ

0 голосов
/ 25 февраля 2020

Сначала мы должны получить 2-е вхождение FROM в строке, а затем нам нужно отделить его от 2-го вхождения.

Просто попробуйте этот код:

var str = "SELECT COL1 , COL2 , (SELECT COL1 FROM TBL2 AS COL4) ,COL5 FROM TBL1 WHERE 1 = 1 ";
var index=str.split("FROM", 2).join("FROM").length; //getting 2nd occurrence of FROM
var str1=str.slice(0, index);
var str2=str.slice(index);
var arr = [str1,str2];
console.log(arr);
...