Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Поиск слов по регулярному выражению в тексте (https://javascript.ru/forum/misc/54053-poisk-slov-po-regulyarnomu-vyrazheniyu-v-tekste.html)

danies 01.03.2015 21:05

Поиск слов по регулярному выражению в тексте
 
Нужно найти в тексте все ссылки, находящиеся в таком положении:
require $_SERVER["DOCUMENT_ROOT"].'/cms/class/main.class.php';

То есть в случае выше скрипт должен найти и вывести
/cms/class/main.class.php




Есть такой скрипт:

function drevo() {
	
	text=$("#code").val();

	text=text.replace(/[\s\S]*?require \$_SERVER\[\"DOCUMENT_ROOT\"\]\.\'([^;']*)\';[\s\S]*/ig,'$1');

	alert(text);

}


Он выводит только первое совпадение по слову, но это совсем кривой способ

Есть еще такой:
function drevo() {
	
	rv=/require \$_SERVER\[\"DOCUMENT_ROOT\"\]\.(\'|\")[\s\S]*(\'|\");/i;

	text=$("#code").val();

	alert(rv.exec(text));
}


Однако он выводит строку целиком, то есть
require $_SERVER["DOCUMENT_ROOT"].'/cms/class/main.class.php';


Если приписать
a=rv.exec(text);
p=a.split(/'/);// или p=a.split("'");

Скрипт вообще не работает.

danik.js 01.03.2015 21:42

Тебе нужен метод text.match(re), и модификатор g в регулярке.

danies 01.03.2015 22:08

Спасибо за наводку, сделал так


function drevo() {
	
	rv=/require \$_SERVER\[\"DOCUMENT_ROOT\"\]\.(\'|\")[^\'\",]*/gi;
	text=$("#code"+file_num).val();


	a=text.match(rv);
	mass=new Array ();
	for(i=0;i<a.length;i++) {
		
		mass[i]=a.slice(i,i+1);
		
		text=mass[i].toString();
		alert(text.substring(35));
		
	}

Vlasenko Fedor 02.03.2015 01:28

Цитата:

Сообщение от danies
Спасибо за наводку, сделал так

Даю наводку №2 :) делать надо на языке который выводит контент и $_SERVER["DOCUMENT_ROOT"]


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