Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Не работает RegEx (https://javascript.ru/forum/misc/29635-ne-rabotaet-regex.html)

propostaff 05.07.2012 17:43

Не работает RegEx
 
В общем я знаком с регулярными выражениями под php. Создал выражение
(?<=q=).*?(?=[^A-Za-z0-9_\+])|(?<=q=).*$
Но оно не работает в javascript, пытался решить проблему, как я понял не работает конструкция <=, но как заменить её я не могу придумать, есть идеи?

devote 05.07.2012 19:20

Цитата:

Сообщение от propostaff
придумать, есть идеи?

что бы получить ответ, нужно не только кусок реги показывать, но и объяснять что именно должна регулярка делать.

propostaff 05.07.2012 20:49

она парсит урл, точнее кусок урл. Он может быть такого вида:
http://www.google.com/search?sourcei...me&ie=UTF-8&q=javascript+ru
без пробела в конце, либо такого:
http://www.google.com/search?sourcei...=c3&xhr= t&q=javascript+ru&pf=p&sclient=psy-ab&oq=%D0%BE%D1%84%D0%BC%D1%84%D1%8B%D1%81%D0%BA&g s_l=&pbx=1&bav=on.2,or.r_gc.r_pw.r_cp.r_qf.,cf.osb &fp=35bf63437e7f3d7e&biw=1920&bih=1099

devote 05.07.2012 22:02

Цитата:

Сообщение от propostaff
без пробела в конце, либо такого:

а что в итоге то должно быть? то-есть результат то какой должен быть?

devote 05.07.2012 22:29

типо этого чтоль:
var m;

var url = "http://www.google.com/search?sourceid=chrome&ie=UTF-8&q=javascript+ru";

if ( m = /(?:q=)(.*?(?=[^A-Za-z0-9_\+])|.*$)/g.exec( url ) ) {
    alert( m.join("\n\n") );
}

var url = "http://www.google.com/search?sourceid=chrome&ie=UTF-8&q=javascript+regex+Invalid+group#hl=ru&gs_nf=1&pq=javascript%20%D0%B8%20php%20regexp%20%D0%BE%D1%82%D0%BB%D0%B8%D1%87%D0%B8%D1%8F&cp=7&gs_id=c3&xhr=t&q=javascript+ru&pf=p&sclient=psy-ab&oq=%D0%BE%D1%84%D0%BC%D1%84%D1%8B%D1%81%D0%BA&gs_l=&pbx=1&bav=on.2,or.r_gc.r_pw.r_cp.r_qf.,cf.osb &fp=35bf63437e7f3d7e&biw=1920&bih=1099";

if ( m = /(?:q=)(.*?(?=[^A-Za-z0-9_\+])|.*$)/g.exec( url ) ) {
    alert( m.join("\n\n") );
}

propostaff 08.07.2012 23:13

Результат, который должен получиться выделе жирным шрифтом в моем предыдущем посте

propostaff 08.07.2012 23:16

Нужно, чтобы "q=" не входило в результат

devote 08.07.2012 23:19

Цитата:

Сообщение от propostaff
Нужно, чтобы "q=" не входило в результат

и что же вам не нравится в моем примере?
var m;
 
var url = "http://www.google.com/search?sourceid=chrome&ie=UTF-8&q=javascript+ru";
 
if ( m = /(?:q=)(.*?(?=[^A-Za-z0-9_\+])|.*$)/g.exec( url ) ) {
    alert( m[1] );
}
 
var url = "http://www.google.com/search?sourceid=chrome&ie=UTF-8&q=javascript+regex+Invalid+group#hl=ru&gs_nf=1&pq=javascript%20%D0%B8%20php%20regexp%20%D0%BE%D1%82%D0%BB%D0%B8%D1%87%D0%B8%D1%8F&cp=7&gs_id=c3&xhr=t&q=javascript+ru&pf=p&sclient=psy-ab&oq=%D0%BE%D1%84%D0%BC%D1%84%D1%8B%D1%81%D0%BA&gs_l=&pbx=1&bav=on.2,or.r_gc.r_pw.r_cp.r_qf.,cf.osb &fp=35bf63437e7f3d7e&biw=1920&bih=1099";
 
if ( m = /(?:q=)(.*?(?=[^A-Za-z0-9_\+])|.*$)/g.exec( url ) ) {
    alert( m[1] );
}


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