Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   разбить строку - RegExp (https://javascript.ru/forum/misc/53812-razbit-stroku-regexp.html)

Tsamsiyu 19.02.2015 15:21

разбить строку - RegExp
 
Есть строка :
't.id = 10 OR t.name = "user" AND user.account = 0'
надо разбить на части типа
t.id = 10 OR
t.name = "user" AND
user.account = 0

Пробовал чтото вроде :

var reg = /[^(OR)(AND)]+(OR|AND)/ig;
var string = 't.id = 10 OR t.name = "user" AND user.account = 0';
console.log(string.match(reg));


Я понимаю, что вот эта конструкция [^(OR)(AND)]+ не отрабатывает так как я хочу, но не пойму как сделать это по другому.

danik.js 19.02.2015 15:43

var reg = /\b(?=(?:OR|AND)\b)/ig;
var string = 't.id = 10 OR t.name = "user" AND user.account = 0';
alert(string.split(reg).join('\n'));


Ток нафига оно тебе нужно )

danik.js 19.02.2015 15:49

А, тебе блин чтобы союзы в конце строк были нужно. Ну например так:
var reg = /.*?(?:\s+(?:OR|AND)\s+|$)/ig;
var string = 't.id = 10 OR t.name = "user" AND user.account = 0';
alert(string.match(reg).join('\n'));

danik.js 19.02.2015 15:53

Если упростить, то будет так: /.*?(OR|AND|$)/g
Но союзы должны быть окружены пробелами, так что приходится усложнять.

Tsamsiyu 20.02.2015 14:31

Разбираюсь с RegExp.
 
Огромное спасибо!

kotlov-net 20.02.2015 19:09

Вариант без мудрствований:)
alert('t.id = 10 OR t.name = "user" AND user.account = 0'.split(/ OR | AND /))


Часовой пояс GMT +3, время: 17:03.