Поиск слов по регулярному выражению в тексте
Нужно найти в тексте все ссылки, находящиеся в таком положении:
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, время: 19:32. |