Поиск слов по регулярному выражению в тексте
Нужно найти в тексте все ссылки, находящиеся в таком положении:
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("'");
Скрипт вообще не работает. |
Тебе нужен метод text.match(re), и модификатор g в регулярке.
|
Спасибо за наводку, сделал так
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));
}
|
Цитата:
|
| Часовой пояс GMT +3, время: 15:03. |