Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 19.02.2015, 15:21
Интересующийся
Отправить личное сообщение для Tsamsiyu Посмотреть профиль Найти все сообщения от Tsamsiyu
 
Регистрация: 26.09.2014
Сообщений: 19

разбить строку - 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)]+ не отрабатывает так как я хочу, но не пойму как сделать это по другому.

Последний раз редактировалось Tsamsiyu, 19.02.2015 в 15:29.
Ответить с цитированием
  #2 (permalink)  
Старый 19.02.2015, 15:43
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

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'));


Ток нафига оно тебе нужно )
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #3 (permalink)  
Старый 19.02.2015, 15:49
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

А, тебе блин чтобы союзы в конце строк были нужно. Ну например так:
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'));
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #4 (permalink)  
Старый 19.02.2015, 15:53
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Если упростить, то будет так: /.*?(OR|AND|$)/g
Но союзы должны быть окружены пробелами, так что приходится усложнять.
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #5 (permalink)  
Старый 20.02.2015, 14:31
Интересующийся
Отправить личное сообщение для Tsamsiyu Посмотреть профиль Найти все сообщения от Tsamsiyu
 
Регистрация: 26.09.2014
Сообщений: 19

Разбираюсь с RegExp.
Огромное спасибо!
Ответить с цитированием
  #6 (permalink)  
Старый 20.02.2015, 19:09
Интересующийся
Посмотреть профиль Найти все сообщения от kotlov-net
 
Регистрация: 20.02.2015
Сообщений: 13

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



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Разбить строку в массив по несколько символов BaBaKa Общие вопросы Javascript 11 20.11.2014 21:29
После new RegExp null, а без new RegExp array kostyanet Общие вопросы Javascript 19 25.10.2014 12:53
Вставить значение переменных в строку someone Общие вопросы Javascript 2 03.11.2013 00:14
Помогите разбить строку входящих данных на 2 переменные freefly Общие вопросы Javascript 3 18.01.2010 01:56
RegExp и unicode Yury900 Общие вопросы Javascript 7 13.05.2008 00:19