2015-11-12 5 views
0

это мой кодкак получить FunctionName от javascriptCode, который находится в строчном формате

var javascriptCode="function adding(a,b){ return a+b}" 

и я хочу, чтобы выбрать FunctionName adding из этой строки, как сделать это?

я попробовал, находя его индекс в

var indexStart=javascriptCode.indexOf("function "); 
var indexEnd=javascriptCode.indexOf("("); 
var res = javascriptCode.substring(indexStart, indexEnd); 

но я получаю выход в function adding, является их любым другим способом сделать это

+0

Сторона примечания: скорее всего, есть намного лучшие подходы к достижению вашей фактической цели. Часто оценка скрипта из строки является признаком проблемы безопасности. Если вам действительно нужно это сделать - подумайте о том, чтобы найти полный парсер JavaScript вместо того, чтобы пытаться самостоятельно разбирать строку как правильный скрипт. –

+0

@AlexeiLevenkov на самом деле я использую ui-ace и сохраняю этот скрипт в строчном формате, но так или иначе спасибо :) –

ответ

1

Вы можете использовать регулярное выражение.

var javascriptCode="function adding(a,b){ return a+b}" 
var regex = /function\s*([^\(]*)\(/ 
var matchResult = javascriptCode.match(regex) 
var funcName = null; 
if (matchResult && matchResult.length) { 
    funcName = matchResult[1]; 
} 
console.log(funcName); 
+0

Это потрясающее решение. Спасибо. :) –

+0

Боковые заметки: в будущем, если вы не уверены, если у вас есть ответ, напишите комментарий. (Я удалил вопросы со своего поста). –

1

Попробуйте, как это

var javascriptCode="function adding(a,b){ return a+b}"; 
var indexStart=javascriptCode.indexOf(" "); 
var indexEnd=javascriptCode.indexOf("("); 
var res = javascriptCode.substring(indexStart+1, indexEnd); 
console.log(res); 

JSFIDDLE

+0

Спасибо Anik, этот я считаю приоритетным :) –

+0

@SyedRasheed добро пожаловать –

Смежные вопросы